Pregunta

Estoy usando http://maps.google.com/maps/geo ? servicio web de codificación geográfica algunas direcciones.

El problema que tengo es que una dirección completa no da necesariamente una codificación geográfica más precisa.

por ejemplo pasando en Llantysilio, Denbighshire, Reino Unido es mucho más preciso que Llantysilio, Llangollen, Denbighshire, Reino Unido

El atributo Precisión en el XML no parece ser muy útil para decidir qué dirección para recoger.

Como otras personas han tratado este tema? ¿Hay una buena manera de escoger la mejor codificación geográfica que trabaja la mayor parte / todo el tiempo?

* edición Un poco de información adicional - cuando pongo en la dirección más completa la primera línea de la dirección es ignorada y el geocodificador salta a una diferente, pero exacta, dirección que es una calle situada en el centro de la línea extra añadido a la dirección. En este ejemplo, se recoge en la calle Castillo llangollen los medios, aparentemente sin tener en cuenta Llantysilio.

Editar por kdgregory: aquí están las dos solicitudes de API que he usado (faltante clave de API no parece ser un problema):

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml
¿Fue útil?

Solución 5

Al final llegué a la conclusión de que hay demasiados baches extraños en la consistencia de la dirección con el servicio web de codificación geográfica de Google en el Reino Unido, pero con el tiempo las arreglé para encontrar una manera de utilizar los códigos postales en cambio, que es mucho más preciso: cómo se hace

Otros consejos

Hay que interpretar la exactitud mi amigo. Por lo general hay 2 partes con una precisión, la primera macthing dirección. La segunda parte es la parte importante. Puede codificar geográficamente algo a un nivel de precisión de los Estados Unidos, o un nivel de ciudad, código postal centroide, nivel de la calle interpolados o un nivel de precisión de paquetes real. El primer ejemplo tiene un 4 y la segunda es de 9. Para este servicio mayor es mejor.

Precisión Valor Descripción 0 exactitud desconocida. 1 precisión a nivel de país. 2 Región (estado, provincia, prefectura, etc.) Precisión de nivel. 3 Subregión (condado, municipio, etc.) Precisión de nivel. 4 Ciudad (ciudad, pueblo) Precisión de nivel. 5 Código postal (código postal) Precisión de nivel. 6 la calle exactitud nivel. 7 Intersección precisión de nivel. precisión a nivel de 8 direcciones. 9 Premisa precisión de nivel (nombre, nombre de la propiedad, centro comercial, etc. construcción).

Es probable que sea bueno tener en cuenta que Google no sigue las especificaciones XAL , sino que las pone en práctica en un subgrupo.

Por lo tanto, esto significa que no necesariamente será capaz de hacer:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Debido a un país y sub-localidad pueden proporcionarse mientras que un área administrativa no lo es.

Los datos que se devuelve se identifica con un medidor de precisión que le da una idea relativa de lo que puede esperar para los datos. Por lo tanto, puede almacenar objetos y cortar partes de la dirección completa utilizando esta variable y tratar de codificación geográfica de tal manera - No se recomienda sin embargo.

Por lo general, una dirección completa es (sin la vía) es una buena manera de encontrar la ubicación general. Se puede utilizar parte de la lógica ponderado preferencial Google ofrece para refinar la dirección.

por ejemplo. Usar la SetViewport o SetCountryCode para dar a sus búsquedas un poco más de precisión.

Recuerde, geocodificación no es una ciencia . No se puede esperar resultados consistentes.

Un código geográfico response.Placemark [0] mediante el gmap puede comprobar lo que tienes, y tomar el nivel o vuelve a intentarlo. Elegí por defecto en el orden

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Podría ser nombrado más lógica como se ha visto anteriormente. gmaps 3 funciona de una forma incompatible con v2.

Puede intentar un corte muy feo, que consiste en la geocodificación de su Dirección completa y todos los subconjuntos de las palabras contiene su dirección, se obtiene una gran cantidad de códigos geográficos que se utilizan para obtener las direcciones relacionadas con ellos con la herramienta de geocodificación inversa. Una vez que tenga un montón de direcciones se les compara con la persona que dio por primera vez, a continuación, tomar la codificación geográfica más precisa ... Muchas de las solicitudes, mucha iteración creciendo con cada palabra que se agrega a su dirección, así un trabajo feo, pero puede ser divertido para hacer algunas estadísticas ^^

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top