Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Geographisches Institut / Abteilung Geomatik 
Geocodierung mit RStudio 
am Beispiel Google Maps API 
Thomas Mönkemeier, B....
Geographisches Institut / Abteilung Geomatik 
Aufgabe: Geocodierung 
• Häufige Anforderung aus der Praxis am Institut: 
„L...
Geographisches Institut / Abteilung Geomatik 
Umgebung: RStudio 
• R ist eine freie Programmiersprache für statistisches R...
Geographisches Institut / Abteilung Geomatik 
Beispiel: Google Maps API 
• Aufgabe: Geocodierung 
• Vorteil: Toleranz bei ...
Geographisches Institut / Abteilung Geomatik 
Funktion für Google Maps API 
library(RCurl) 
library(RJSONIO) 
googleurl=fu...
Geographisches Institut / Abteilung Geomatik 
Liste der Adressen einlesen 
• Komplette Adressen in erster Spalte (für Goog...
Geographisches Institut / Abteilung Geomatik 
Old School: Schleife 
for(i in 1:zeilen) { 
url=googleurl(liste$V1[i]) 
doc=...
Geographisches Institut / Abteilung Geomatik 
Punkte aus Liste erzeugen 
• Spatial Data Packages für R einbinden: 
library...
Geographisches Institut / Abteilung Geomatik 
Optional: Höhenangaben 
• SRTM-Daten für die Höhe bei Bedarf vorher ergänzen...
Geographisches Institut / Abteilung Geomatik 
Punkte als Shape speichern 
• Spatial Dataframe zur Kontrolle plotten: 
plot...
Geographisches Institut / Abteilung Geomatik 
Selbst ausprobieren 
• Download R (z.B. für Windows): 
http://cran.rstudio.c...
Geographisches Institut / Abteilung Geomatik 
Viel Erfolg! 
Noch Fragen? 
#gdmoen
Upcoming SlideShare
Loading in …5
×

GISDday 2014 Geocodierung mit R am Beispiel Google Maps API

Vortrag am 19.11.2014 14:40 am GFZ Potsdam: Geocodierung mit R am Beispiel Google Maps API #gdmoen

Related Books

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

  • Be the first to like this

GISDday 2014 Geocodierung mit R am Beispiel Google Maps API

  1. 1. Geographisches Institut / Abteilung Geomatik Geocodierung mit RStudio am Beispiel Google Maps API Thomas Mönkemeier, B.Eng. Prof. Dr. Tobia Lakes Humboldt-Universität zu Berlin moenkemt@geo.hu-berlin.de
  2. 2. Geographisches Institut / Abteilung Geomatik Aufgabe: Geocodierung • Häufige Anforderung aus der Praxis am Institut: „Liste mit Adressen in ein Shape umwandeln“ • Gegeben: Liste mit Adressen • Gewünscht: Shape für irgendeine GIS-Software • Verwendung von RStudio mit der Google Maps API als kleines Beispiel für Flexibilität von R
  3. 3. Geographisches Institut / Abteilung Geomatik Umgebung: RStudio • R ist eine freie Programmiersprache für statistisches Rechnen (z.B. Regressionsanalyse, ANOVA...) und statistische Grafiken • R gilt zunehmend als Standardsprache für statistische Problemstellungen • R ist open source und Teil des GNU-Projekts • Kommandozeilenkonsole führt Befehle direkt aus • RStudio wohl die beliebteste Entwicklungsumgebung • Packages für R stellen weitere Funktionen bereit
  4. 4. Geographisches Institut / Abteilung Geomatik Beispiel: Google Maps API • Aufgabe: Geocodierung • Vorteil: Toleranz bei Eingabefehlern • Webservice, ohne Registrierung verfügbar • Kein API-Schlüssel mehr erforderlich • Lizenzbedingungen: Maximal 2500 Anfragen pro Tag, Ergebnisse müssen auf einer GoogleMap angezeigt werden • Beispiel übertragbar auf andere Geocoder wie OpenCage, Nominatim, BingMaps...
  5. 5. Geographisches Institut / Abteilung Geomatik Funktion für Google Maps API library(RCurl) library(RJSONIO) googleurl=function(address, format = "json", sensor = "false") { root="http://maps.google.com/maps/api/geocode/" url=paste(root, format, "?address=", address, "&sensor=", sensor, sep = "") return(URLencode(url)) }
  6. 6. Geographisches Institut / Abteilung Geomatik Liste der Adressen einlesen • Komplette Adressen in erster Spalte (für Google Maps) • Optional: Weitere Attribute CSV-getrennt • Adress-Liste einlesen in R-Studio Dataframe: liste=read.csv("adressen.txt", header=FALSE, sep=";", fileEncoding="UTF-8") zeilen=nrow(liste) spalten=ncol(liste)
  7. 7. Geographisches Institut / Abteilung Geomatik Old School: Schleife for(i in 1:zeilen) { url=googleurl(liste$V1[i]) doc=getURL(url) coords=fromJSON(doc,simplify = FALSE) if(coords$status=="OK") { liste$x[i]=coords$results[[1]]$geometry$location$lng liste$y[i]=coords$results[[1]]$geometry$location$lat liste$type[i]=coords$results[[1]]$geometry$location_type } Sys.sleep(1) }
  8. 8. Geographisches Institut / Abteilung Geomatik Punkte aus Liste erzeugen • Spatial Data Packages für R einbinden: library(sp) library(rgdal) library(raster) • Spatial Dataframe erzeugen aus Liste: shapefile = SpatialPointsDataFrame (liste[(spalten+1):(spalten+2)], liste) • Räumliches Bezugssystem festlegen: projection(shapefile)= CRS("+proj=longlat +datum=WGS84")
  9. 9. Geographisches Institut / Abteilung Geomatik Optional: Höhenangaben • SRTM-Daten für die Höhe bei Bedarf vorher ergänzen • Raster-Package hält geographische Daten vor: srtm=getData('alt',country="DEU") • Spalte für Höhe anbinden: liste=cbind(liste,ele= extract(srtm,liste[(spalten+1):(spalten+2)], method="bilinear"))
  10. 10. Geographisches Institut / Abteilung Geomatik Punkte als Shape speichern • Spatial Dataframe zur Kontrolle plotten: plot(shapefile) • Und schließlich abspeichern: writeOGR(shapefile, dsn = '.', layer ='adressen', driver = 'ESRI Shapefile') • Fertig!
  11. 11. Geographisches Institut / Abteilung Geomatik Selbst ausprobieren • Download R (z.B. für Windows): http://cran.rstudio.com/bin/windows/base/ • Download RStudio Desktop Open Source Edition: http://www.rstudio.com/ • Software installieren, Libraries aus Packages holen • Adressen in Textdatei vorbereiten • Beispiel für erste eigene Schritte verwenden • Am Ergebnis erfreuen und weitermachen!
  12. 12. Geographisches Institut / Abteilung Geomatik Viel Erfolg! Noch Fragen? #gdmoen

×