usar una googlemaps google georreferenciación geocodificar ejemplos direcciones datos con php google-maps geolocation

una - google maps php mysql ejemplos



API de geocodificación de Google Maps: sesgo de país, resultados extraños (3)

Esta definitivamente no es una respuesta exhaustiva, sino solo unas pocas notas:

  1. Está utilizando la antigua versión V2 de la API de codificación geográfica , que Google ha desaprobado recientemente a favor de la nueva API V3 . Google sugiere utilizar el nuevo servicio a partir de ahora, y si bien no tengo experiencia real con la nueva versión, parece que han mejorado el servicio en varios puntos, especialmente con la estructura de la respuesta. No necesita una clave API para usar el nuevo servicio, y simplemente necesita usar una URL ligeramente diferente:

    http://maps.google.com/maps/api/geocode/xml?address=Neustadt&sensor=false

  2. Mencionaste que estabas filtrando por marcas de posición en su propiedad de precisión. Tenga en cuenta que este campo ya no aparece en los resultados de la nueva API de geocodificación, pero en cualquier caso, creo que todavía no era muy confiable en la antigua API.

  3. Es posible que desee intentar utilizar los bounds y los parámetros de la region de la nueva API, pero aún dudo de que resuelvan su problema.

Creo que Google Geocoder es una gran herramienta para cuando le das una dirección completa en al menos un formato de "calle, localidad, país", y también es muy confiable en otros formatos cuando no tiene que tratar con ningún ambigüedades (Geocodificación "Londres, Reino Unido" siempre funcionó para mí).

Sin embargo, en su caso, realmente consideraría calcular todas las coordenadas de cada localidad alemana y simplemente manejar la geocodificación usted mismo desde su base de datos. Creo que esto es bastante factible, especialmente dado que su aplicación está localizada en un solo país. Cada pueblo en la "Lista de ciudades alemanas" de Wikipedia parece tener las coordenadas almacenadas dentro de un pequeño y ordenado <span> que parece muy fácil de analizar:

<span class="geo">47.84556; 8.85167</span>

Hay dieciséis Neustadts en esa lista, que pueden ser mejores que los seis de Google :)

Me estoy conectando a la API de Google Maps desde PHP para geocodificar algunos puntos de partida para una aplicación de localización de estaciones de alquiler.

Esos puntos de partida no tienen que ser direcciones exactas; los nombres de las ciudades son suficientes Las respuestas de geocodificación con una accuracy igual o superior a 4 (nivel de ciudad / localidad) se utilizan como puntos de partida y se buscan las estaciones de alquiler de los alrededores.

Se supone que la aplicación debe funcionar en Alemania. Cuando el nombre de una localidad es ambiguo (es decir, hay más de un lugar de ese nombre), quiero mostrar una lista de posibilidades.

Eso no es un problema en general: si realiza una búsqueda ambigua, la salida XML de Google devuelve una lista de elementos <PlaceMark> lugar de solo uno.

Obviamente, necesito sesgar la geocodificación hacia Alemania, por lo que si alguien ingresa un código postal o el nombre de una localidad que también existe en otros países, solo aparecerán hits en Alemania.

Pensé que podría lograr esto agregando , de o , Deutschland a la consulta de búsqueda. Esto funciona bien, pero produce resultados extraños e intolerables en algunos casos.

Hay, por ejemplo, 27 localidades en Alemania llamadas Neustadt . ( Wikipedia )

Cuando busco solo Neustadt :

http://maps.google.com/maps/geo/hl=de&output=xml&key=xyz&q=Neustadt

Obtengo al menos seis de ellos, con los que podría vivir (podría ser que los otros no estén incorporados, o partes de una localidad diferente, o lo que sea).

Sin embargo, cuando busco Neustadt, de , o Neustadt, Deutschland o Neustadt, Germany , obtengo solo una de las veintisiete localidades, sin ninguna razón aparente: no es la más grande, ni es la más exacta. , ni tiene ninguna otra característica única.

¿Alguien sabe por qué es esto y qué puedo hacer al respecto?

Probé el parámetro de region , pero fue en vano; cuando no uso , de , los códigos postales (como 50825 se resolverán en sus contrapartes estadounidenses, no en los alemanes).

Mi idea actual de solución es agregar el nombre del país cuando la entrada es solo numérica, y de lo contrario filtrar solo los resultados en alemán, pero esto suena terriblemente complicado. ¿Alguien sabe una mejor manera?



Encontré esta pregunta buscando este problema exacto. Luego se dio cuenta de que Bing Maps API funciona mucho mejor. Aunque tiene sus peculiaridades. Por ejemplo, si pasa un código de aeropuerto, le mostrará 6 soluciones diferentes, cada una correspondiente a cada terminal del aeropuerto.