2010-01-25 15 views
7

Mi sto davvero frustrando con i risultati geografici di Google e spero che qualcuno possa consigliarmi che il meglio è stato.Google Maps Risultati GEO

Ho creato una funzione AutoSugest in cui è possibile iniziare a digitare l'indirizzo e Google risponderà con suggerimenti. L'utente seleziona e indirizza per andare avanti.

Ma prima voglio che continuino nella pagina successiva Voglio convalidare la loro selezione. Avrei pensato che sarebbe stato facile visto che stiamo solo controllando ciò che Google ha già dato. Ma quando eseguo la mia convalida, non mostra risultati.

qualche esempio di codice:

Diciamo che ho preso dalla suggestione questo indirizzo: Suffield, CT 06078, USA

Poi sulla convalida faccio una seconda ricerca con questo indirizzo per esempio.

$string = "Suffield, CT 06078, USA";  
echo 'http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q='.urlencode($string).''; 

Mi dà errore codice 602 (G_GEO_UNKNOWN_ADDRESS)

Come non può che essere trovata quando la sua mi ha dato l'indirizzo?

Come posso aggirare questo?

+0

sembra che funziona se si rimuove lo Stato né il codice di avviamento postale. Non so perché ... –

+0

Questa API ** maps.google.com/maps/geo? ** è deprecata? – EmptyStack

risposta

1

È davvero strano, ma sono riuscito a convalidare l'indirizzo utilizzando il nome completo dello stato.

non funziona:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20CT%2006078

funziona:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20Connecticut%2006078

E sì, l'indirizzo hanno fornito a voi non lavorare nel proprio sistema em. Detto questo, cercando Hartford, CT funziona. Sembra che ci possa essere una discrepanza nella quotazione dei dati in base alla quale Suffield + CT restituisce risultati falsi.

3

Hai ragione. Questo è abbastanza strano.

Nota che funziona quando si rimuove lo spazio tra TC e 06078:

http://maps.google.com/maps/geo?q=Suffield,+CT06078,+USA&output=csv&sensor=false 

I rendimenti superiori alla 41.9817631, -72,6506462. (Link to Google Maps)


Reverse geocoding quelle coordinate con:

http://maps.google.com/maps/geo?q=41.9817631,-72.6506462&output=csv&sensor=false 

rendimenti:

200,4,"Suffield, CT, USA" 
+0

Sei interessato a rimuovere uno spazio funziona?Potrebbe essere necessario avere il backup dell'API di Yahoo e forse rimuoverlo e riprovare – Lee