Jakob Richter

Geokoordinaten mit R und Google finden (einfach, ohne API)

Dies ist eine verblüffend leichte Übung, da Google einem direkt ein csv-File (Beispiel) ausspuckt, welches natürlich sehr einfach zu lesen ist. Weil es so einfach ist hier nur wenig Text und der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
reisetrip < - c("Berlin","Potsdam","Magdeburg","Hannover","Minden","Bielefeld","Dortmund")
breiten <- NULL
langen <- NULL
for(i in seq_along(reisetrip)){
  query <- paste(strsplit(reisetrip[i]," ")[[1]], collapse="%20") #Leerzeichen mit %20 codieren
  query <- paste("http://maps.google.com/maps/geo?q=",query,"&output=csv&num=1",sep="")
  res <- read.table(query,sep=",")
  cat("Ort #",i,"von",length(reisetrip),";",reisetrip[i],"\n")
  Sys.sleep(runif(1,0.1,2.5)) #Wir warten ein wenig, damit Google nicht sauer wird.
  langen[i] <- res[,4] #longitude
  breiten[i] <- res[,3] #latitude
}
plot(langen,breiten,type="l", ylim=range(breiten)+c(-0.1,+0.1), xlim=range(langen)+c(-2,+0.5))
points(langen,breiten,pch=19)
text(langen,breiten,reisetrip,pos=2)

Warnungen bezüglich unvollständiger letzter Zeilen können getrost vernachlässigt werden

plot()
Read the rest of this entry »