Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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
Nächste SlideShare
Wird geladen in …5
×

GISDday 2014 Geocodierung mit R am Beispiel Google Maps API

992 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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

×