2012-07-01 13 views
5

Ho una vasta collezione di immagini con posizioni GPS, codificate come coordinate lat/lon, principalmente a Los Angeles. Vorrei convertirli in (1) codici di avviamento postale e (2) nomi di quartiere. Ci sono servizi web gratuiti o database per farlo?Convertire lat/lon nel codice postale/nome del quartiere

Il meglio che riesco a fare finora è raschiare i poligoni di vicinato dal LA times page e cercare di scoprire in quale poligono si trova ogni coordinata. Comunque questo potrebbe essere un bel po 'di lavoro, e non tutte le mie coordinate sono a LA. Per quanto riguarda i codici di avviamento postale, questo 2004 database è il migliore che riesca a trovare, tuttavia i codici di avviamento postale sono codificati come singole coordinate anziché come poligono. Quindi, il meglio che posso fare è trovare la distanza minima da una data coordinata alle coordinate di un determinato codice postale, che non è ottimale.

Ho avuto l'impressione che google-maps o open-street-maps dovrebbero essere in grado di fare ciò (come sembrano sapere esattamente dove si trovano ogni neighboorhood e zipcode), tuttavia non riesco a trovare nessuna API da fare le ricerche/domande.

risposta

12

Ora puoi farlo direttamente nella stessa R grazie al fantastico pacchetto ggmap.

Come altri citare, sarete geocoding inverso utilizzando l'API Google Maps (e quindi limitata a 2.500 richieste al giorno), ma è semplice come:

library("ggmap") 

# generate a single example address 
lonlat_sample <- as.numeric(geocode("the hollyood bowl")) 
lonlat_sample # note the order is longitude, latitiude 

res <- revgeocode(lonlat_sample, output="more") 
# can then access zip and neighborhood where populated 
res$postal_code 
res$neighborhood 
+0

non dà quartiere! –

1

Utilizzare Reverse Geocoding per convertire lat/lon in indirizzi. Tuttavia ha qualche limite al numero di query al giorno.

0

Provate questo:

http://www.usnaviguide.com/zip.htm

C'è qualche limite al numero di query al giorno si può fare sul sito, ma vendono anche il database completo, che cambia ogni pochi mesi. Mi dispiace che non conosca risorse gratuite.

1

Ecco un bel blog post con esempi su come geocodificare e invertire geocodifica utilizzando google-maps.

0

Come suggerito da altri, il loro geocodifica nell'indirizzo stradale dovrebbe funzionare correttamente per il codice postale. Non sono troppo sicuro del vicinato, perché potrebbe essere necessario controllare se il numero civico è pari/dispari per vedere se si trova sul lato di una strada che determina il vicinato.

Un modo alternativo è quello di preparare la funzione di poligono GIS (ad esempio il file di forma ESRI), testare ciascun punto contro questo insieme di poligoni per vedere quale si interseca.

il codice di avviamento postale è molto semplice, è possibile scaricare il file di forma dal censimento. quartiere

http://www.census.gov/cgi-bin/geo/shapefiles2010/main

è più difficile, direi. In un'altra parte degli Stati Uniti ho dovuto creare il mio file di forma da solo combinando le definizioni di governo municipale, sito web immobiliare, giornale ecc. In modo che assomigli a ciò che la gente pensa che il quartiere della città sia senza sovrapposizioni o divari. Può essere necessario del tempo per comporre questo insieme di poligoni. si può granchio censimento "blocco gruppo", o anche censimento "blocco" dalla pagina sopra e unirli

Una volta preparate le funzionalità del poligono, ci sono un paio di strumenti GIS in ambiente diverso (eseguibile stand-alone, programma GUI, API c/python/sql etc, probabilmente anche R, per fare l'intersezione di poligoni e punti

Problemi correlati