2017-05-19 4 views
0

dort.Refresh URL Link von Google Maps mit R

Wenn Google Maps verwenden, können wir auf den folgenden Link haben:

maps.google.com.br/?q=newyork

Welche tatsächlich umgeleitet werden:

https://www.google.com.br/maps/place/Nova+York,+NY,+EUA/@40.7056497,-73.9780035,9z/data=!4m2!3m1!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62

, dass eine Verbindung, die geografische Breite und Länge enthält, ist von dem Ort in Es. Was ich brauche ist, indem ich den ersten "Typ" von Link den zweiten bekomme. Ich habe versucht, einige Funktionen aus dem Paket urltools und sogar einige Pakete von Text Mining, wie tm und XML, aber bisher nichts funktionierte, habe ich keinen Code zu zeigen, aber:

library(tm) 
library(XML) 
URL <- getURL("maps.google.com.br/?q=newyork") 

Wie schon scheinen mag, was ich möchte seinen lat und long aus den googlemaps links extrahieren. Ich habe die Seite überprüft und nicht im HTML gefunden. Auf diese Weise folgst du, dass es bei dieser Umwandlung von Links einen Weg gibt, lat und long zu erhalten.

Im Voraus, ich meine dies für einen sehr großen Datensatz zu tun, so kann ich nicht die googlemaps API verwenden (weder ich habe Geld für die Überschreitung der Anforderungen zu bezahlen).

Das ist mein Problem. Tut mir leid, dass ich falsch geschrieben oder etwas falsch geschrieben habe. Hat jemand Vorschläge?

+0

Versuchen Sie, 'followLocation = TRUE'zu' getURL() 'zu übergeben. Auf diese Weise kann der Anruf auf die entsprechende Seite weitergeleitet werden, die Lat/Long-Daten enthält. – Majo

+0

Hallo @Majo. Danke für die Antwort. Ich habe verstanden, was du gesagt hast, aber die Seite selbst scheint nicht das lat/long zu enthalten (zumindest habe ich es nicht gefunden), verstanden? –

+0

Überprüfen Sie die 'CacheResponse' in' Kopf (URL) ', finden Sie es? Mit Online-Tools überprüfen sollte das Ergebnis so etwas wie -73.97800349999999,40.7056497 für NYC sein. – Majo

Antwort

1

Wenn Sie Geokodierung starten gehen Ich schlage vor, mit dem ggmap Paket und die geocode Funktion:

library(ggmap) 
NY<-'New York, NY' 
location<-geocode(NY) 
print(location) 

revgeocode(c(location$lon, location$lat)) 

ggmap hat Zugriff auf die Datenbank Google und hat einige nette Funktionen für Plot Erdbeobachtungsdaten auf einer Vielzahl von verschiedenen Karten.

+0

Ich mag diese Lösung am besten, aber sie hat die Einschränkungen der API. – Majo

+1

@Majo gibt es andere nicht-Google-Lösungen, wie zum Beispiel die (Data Science Tookit) (http://www.datasciencetoolkit.org/developerdocs#street2coordinates), die keine API-Einschränkungen, aber derzeit nur in Großbritannien und US – SymbolixAU

+0

@SymbolixAU Ah cool, wusste das nicht. Danke! – Majo