2015-09-10 3 views
8

Ich denke rChart/LeafLet, um eine glänzende App für den Wohnungsverkauf in meinem Land zu erstellen. Es gibt mehrere hundert Häuser zu einem bestimmten Zeitpunkt zum Verkauf. Sie möchten die Straßenadresse-zu-Geolocation (lat/lang) für alle anzeigen und auf einer Karte anzeigen. Also, ich bin auf der Suche nach einem Paket, Service oder einer Datenbank, die die Adresse der Straße zu Geolocation zuordnen können.Adresse zu Geolocation lat/lang

+4

'nominatim': https://github.com/hrbrmstr/nominatim; 'ggmap :: geocode'; 'geocodeHERE :: geocodeHERE_simple'; 'Geonames' Paket; auch 'google r-straßenadresse geolocation' – hrbrmstr

+0

Ausgezeichneter Artikel mit Codebeispiel (mit Paket ggmap): http://www.shanalynn.me/massive-geocoding-with-r-and-google-maps/ –

Antwort

4

I Google Geolokalisierung verwendet haben, ist dies einfach einzurichten und einfach fast Vorhaben auf:

https://developers.google.com/maps/documentation/geocoding/intro

+2

Für zukünftige Referenz, dies gehört in einen Kommentar, aber ich denke, Sie haben nicht genug Rep, um das zu tun, also OK. – jlhoward

+1

Danke Harvey. Die Goolemaps begrenzen die Anzahl der Anfragen auf 10/Sek. Oder 2500 pro Tag. Was ist in Ordnung. gibt es eine Möglichkeit, eine Massenanfrage zu machen. Sagen wir, ich sende 100 Straßenadressen rein und bekomme 100 lon/lat zurück? – Antex

+0

Entschuldigung, ich hätte erwähnen sollen, dass es ein Limit gab. aber für kleine Anwendungen ist nicht viel zu befürchten. Ich schaffte es, mehrere in einer iOS-App durchzuführen, indem ich Anfragen einfach per Looping ausführte. Auch wenn Sie die Geschwindigkeit aufgrund mehrerer Verbindungen möglicherweise zu schnell begrenzen müssen, können Sie sich aussperren. Entschuldigung, ich kenne die R-Details nicht! – Harvey

11

Hier eine Funktion auf Harvey Vorschlag basiert. Es sucht nach der Adresse und gibt die Koordinaten des ersten Ergebnisses an. Werfen Sie einen Blick auf die Struktur von x in der Funktion, um andere Informationen zu sehen, die Sie bekommen können.

geocodeAdddress <- function(address) { 
    require(RJSONIO) 
    url <- "http://maps.google.com/maps/api/geocode/json?address=" 
    url <- URLencode(paste(url, address, "&sensor=false", sep = "")) 
    x <- fromJSON(url, simplify = FALSE) 
    if (x$status == "OK") { 
    out <- c(x$results[[1]]$geometry$location$lng, 
      x$results[[1]]$geometry$location$lat) 
    } else { 
    out <- NA 
    } 
    Sys.sleep(0.2) # API only allows 5 requests per second 
    out 
} 

Zum Beispiel:

R> geocodeAdddress("Time Square, New York City") 
[1] -73.98722 40.7575 
+0

Warum erstellen wir Funktionen, wenn Pakete für genau die gleiche Funktionalität existieren? – hrbrmstr

+0

@hrbrmstr Ich war mir dieses Paket nicht bewusst, danke für die Köpfe hoch. – christoph

+0

Können Sie den Paketnamen choff teilen? – Antex