2010-01-16 18 views
10

Qual è il modo più completo, preciso e affidabile per ottenere le coordinate (latitudine/longitudine) di un determinato CAP/codice postale di un determinato paese? Ho bisogno di fare un sacco di richieste, quindi un alto limite di API (forse anche assente) sarebbe utile.CAP/Coordinate Paese a Geo

GeoNames discariche sarebbe bello, ma sembra avere troppe coordinate duplicate (example) e sembra anche che nel loro database mancano alcuni codici postali/postali per paesi specifici.

Esistono altre alternative (affidabili)?


Mentre I was reading a Meta question, mi sono imbattuto in questo link:

http://query.yahooapis.com/v1/public/yql?q=select%20%2A%20from%20geo.places%20where%20text%3D%22Jyv%C3%A4skyl%C3%A4%22&format=xml 

avevo sentito parlare del YQL prima, ma non avevo idea che potrei usarlo per geocoding degli indirizzi, così ho cercato un po ' e I found this very interesting piece of information:

Limiti di utilizzo

Per limite di applicazione (identificati da vostra chiave di accesso): 100.000 chiamate al giorno

Per limiti IP:/v1/public /: 1.000 chiamate all'ora;/V1/YQL /: 10.000 chiamate all'ora

Qualcuno sa dove posso trovare informazioni più specifiche nell'uso YQL a geocoding degli indirizzi?

+0

Molti imbroglioni tra cui http://stackoverflow.com/questions/1320262/web-service-to-get-the-gps-coordinates –

+0

@Neil: non esattamente, tutte le risposte in quella domanda utilizzano le API GYM/GYB e hanno limiti di velocità bassi. –

+1

Ti piacerebbe spiegare più da vicino per che cosa hai bisogno dei dati? In Germania, ad esempio, un singolo codice postale si applica a una zona molto ampia, definita dai confini del distretto o della contea. Due indirizzi con lo stesso codice postale a 5 cifre possono trovarsi a una distanza di 10-20 km. Lo stesso è il caso nella mia nativa Finlandia (con distanze ancora maggiori). Un codice geografico su un codice postale può essere solo un punto centrale immaginario. Sembri prestare molta attenzione alla qualità dei dati - come funzionerà per te? Inoltre, l'operazione deve davvero svolgersi in un giorno? Perché non distribuire le query nell'arco di poche settimane? –

risposta

5

Yahoo! GeoPlanet vi darà baricentro/punti lunghi per i codici postali. Sono stati affidabili nella mia esperienza. Il limite dell'API è di 50.000 richieste al giorno. Non sono sicuro di quale sia la loro politica sui risultati del caching. Ho l'impressione che se si contatta Yahoo !, è possibile impostare un accordo con un limite di richieste più elevato, anche se potrebbe costare un po 'di soldi.

Ti permettono inoltre di ottenere download a substantial portion of their data sotto una licenza Creative Commons, ma sfortunatamente sembra essere limitato alle relazioni WOEID e ai nomi dei paesi.

+0

Grazie, ma ancora 50k richieste al giorno non sono ancora sufficienti per me (il mio piccolo paese ha solo 300k di codici postali). Inoltre ho trovato che Yahoo non è molto preciso nei codici postali per le coordinate, la stessa coordinata viene restituita per diversi codici postali. Bello sapere della discarica WOEID, però. =) –

+0

Buono a conoscere la tua esperienza con la loro imprecisione. Sono d'accordo con Pekka sopra; potrebbe costare un po 'di soldi, ma prova a chiedere a Yahoo! e magari pagando una piccola somma è possibile ottenere sia per alzare il limite giornaliero o lavorare su qualcosa in cui è possibile memorizzare i risultati. – npdoty

5

Penso che la scelta dipenderà probabilmente dal numero di chiamate API che intendi effettuare al giorno. Il limite giornaliero dell'API gratuita di Google Maps è di 15.000 richieste per indirizzo IP. (Fonte: Google Maps API FAQ.)

Si può fare geocoding con Google Maps API utilizzando la seguente richiesta HTTP:

semplice CSV:

http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=csv&sensor=false 

più complessa XML:

http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=xml&sensor=false 

Semplicemente cambia il parametro "q" con il codice postale e il paese in geocode.

Tuttavia, penso che la memorizzazione permanente dei risultati di geocodifica nel database possa costituire una violazione dei termini e delle condizioni dell'API di Google Maps. Si consiglia di controllare per ulteriori informazioni su queste restrizioni.

+0

15.000 al giorno è un po 'basso per quello che voglio ... BTW cosa fa 'sensor = false'? –

+3

RE: 'sensor = false': http://stackoverflow.com/questions/1993978/ –

+0

+1, grazie Daniel. =) –

1

Il modo più semplice sarebbe naturalmente quello di trovare un fornitore di servizi di alta qualità senza limiti di richieste. Perché non chiedere a Google un'offerta? Da quello che sento, sono abbastanza flessibili nei confronti dei clienti commerciali.

Se non si tratta di un'opzione, sarà certamente possibile ottenere singoli file di dati e fare meno di 33 milioni in molti paesi. Sono abbastanza sicuro che il tedesco e l'austriaco vendono file di dati a prezzi a 3 cifre, e per il Regno Unito ci sono gli Postcode Address File (PAF) i dati della Royal Mail, non penso che la qualità vada meglio di così. Naturalmente, oltre al costo e alla seccatura, ci sarebbe un sacco di lavoro di conversione da fare con 26 singoli file da diversi uffici postali e qualcos'altro - lavoro che non vorrei invidiare a nessuno :) Se hai il budget, è probabilmente più economico per parlare con Google o Yahoo.

+0

Regno Unito: fanno aggiornamenti ai loro codici postali quasi ogni settimana! Ho trovato un fornitore di dati relativamente economico (http://www.geopostcodes.com/buy_eu_zip_codes) ma non sono molto sicuro della qualità dei loro dati. –

+0

Interessante, non lo sapevo, ma sono quasi giù in una casa nel Regno Unito, quindi è ovvio che fluttuano molto ... Beh, questo spiega perché l'abbonamento annuale con Royal Mail costa £ 1700 :) –

+0

Still Penso che sia un abuso, qui abbiamo la precisione al livello della strada e apportano solo modifiche ai codici postali una o due volte all'anno. –

0

che in realtà è un problema davvero difficile poiché un codice postale non è in realtà una regione poligonale, ma un insieme di linee aggregate insieme (vedere il meglio anser per How to get the bounding coordinates for a US postal(zip) code? per una spiegazione molto dettagliata di questo.)

All'interno del Negli Stati Uniti, il Census Bureau mantiene un elenco di limiti approssimativi del codice postale denominati "Zone di tabulazione del codice postale a cinque cifre" (ZCTA5). Puoi scaricarli direttamente ed elaborarli come preferisci. Esistono diversi strumenti di geocoding che possono aiutarti a iniziare; Uso PostGIS (http://postgis.net/) ma ce ne sono altri, soprattutto i dati di Open Street Maps (http://www.openstreetmap.org), che copre il mondo.

+0

API molto semplice per i confini degli Stati Uniti. www.boundares-io.com, costa denaro ($ 25 dollari al mese per colpire l'API) *** Disclaimer lavoro per loro *** –