2009-07-14 16 views
5

L'API per Google Maps può essere utilizzata per recuperare latitudine e longitudine per un determinato codice postale o combinazione Città + Regione per paesi stranieri come The United Kingdon, Francia, Italia, Giappone, Australia ecc.?Ottenere latitudine e longitudine per le aree al di fuori degli Stati Uniti

Sto lavorando a un progetto che richiede risultati di ricerca locali. Per gli utenti domestici recupero il loro lat/lon tramite una tabella codici U.S Zip nel nostro database. Non implica la visualizzazione di mappe, ma solo i risultati di altri utenti che si trovano nella loro area tramite una formula raggio basata su valori lat/lon. Per i risultati di ricerca locali degli utenti stranieri: sto solo mostrando i risultati in base al nome della città corrispondente.

Al momento, gli utenti non statunitensi lat/lon vengono recuperati tramite dati GeoIP di PHP. Mi piacerebbe essere in grado di recuperare valori più accurati a seconda della città + regione o codice postale fornito dall'utente.

Sto pensando di ottenere tabelle di codici postali (che hanno campi lat/lon) per altri paesi. Oppure l'idea dell'API di Google Maps è una soluzione migliore?

+0

Hm .. ho appena notato questo http://www.maxmind.com/app/worldcities che non include i codici postali, ma almeno dà lat/lon per dati i nomi di città. – Seth

+1

Se questi paesi sono "stranieri" o meno dipende dal tuo punto di vista, ovviamente. –

+0

Ho modificato il titolo della mia domanda. Lo svantaggio di non avere i dati del codice postale è che ogni utente di una determinata città avrà le stesse coordinate lat/lon, quindi non sarà possibile visualizzare i risultati dal più vicino al più lontano, tuttavia è possibile includere utenti delle città vicine. Questo è ancora un passo avanti rispetto a quello che sto facendo attualmente. – Seth

risposta

5

Ho trovato i risultati dal Google Maps Geocoder per essere abbastanza buono.

Per testare i tuoi codici postali o indirizzi stranieri (senza scrivere alcun codice), basta allegare il nome del paese alla stringa e provarlo nella casella di ricerca google maps.

In alternativa, è possibile implementare la ricerca abbastanza rapidamente in Javascript:

geo = new GClientGeocoder(); 
geo.getLatLng("2337, Australia", function (point) { 
     GLog.write(point.lat() + "," point.lng()); 
    }); 
+0

Questo sembra il miglior passo avanti. Andare a cena tardi e poi farò un salto. Grazie. – Seth

2

ho usato in precedenza Google Maps per la sua geocodifica, funziona bene e può funzionare per qualsiasi parte del mondo.

Usare il GClientGeocoder da Google e utilizzare il 'setBaseCountryCode (countryCode: String)' metodo per impostarlo ai paesi dominio di primo livello (http://en.wikipedia.org/wiki/CcTLD)

Problemi correlati