2010-01-25 51 views
7

Me estoy realmente frustrando con los resultados geográficos de Google y espero que alguien pueda aconsejarme que lo mejor haya sido.Google Map GEO Results

He creado una función AutoSuggest donde puede comenzar a escribir la dirección y Google responderá con sugerencias. El usuario luego selecciona y dirección para continuar.

Pero antes de que quieran que continúen en la página siguiente, quiero validar su selección. Pensé que esto sería fácil ya que solo estamos controlando lo que Google ya ha dado. Pero cuando hago mi búsqueda de validación no muestra resultados.

un código de ejemplo:

digamos que recogí de la sugerencia de esta dirección: Suffield, CT 06078, EE.UU.

Luego de la validación que hacer una segunda consulta con esta dirección, es decir.

$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).''; 

Me da un error de código 602 (G_GEO_UNKNOWN_ADDRESS)

¿Cómo se puede no se puede encontrar cuando su me ha dado la dirección?

¿Cómo puedo evitar esto?

+0

Parece que funciona si se quita el estado o el código postal. No sé por qué ... –

+0

¿Está desaprobada esta API de ** maps.google.com/maps/geo? **? – EmptyStack

Respuesta

1

Es realmente extraño, sin duda, pero pude validar la dirección utilizando el nombre completo del estado.

No funciona:

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

hace el trabajo:

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

Y sí, la dirección que proporcionan a usted no trabajar en su propio sistema em. Dicho esto, la búsqueda de Hartford, CT funciona. Parece que puede existir una discrepancia en el listado de sus datos por la cual Suffield + CT arroja resultados falsos.

3

Tienes razón. Eso es bastante extraño.

Tenga en cuenta que lo hace el trabajo cuando se quita el espacio entre TC y 06078:

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

Los rendimientos por encima 41.9817631, -72.6506462. (Link to Google Maps)


geocodificación inversa con esas coordenadas:

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

devuelve:

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

¿Wiered eliminando un espacio funciona?Puede que tenga que tener la copia de seguridad de la API de Yahoo y quizás quiten el espacio e intenten de nuevo – Lee