Pregunta

Estoy escribiendo un componente de geocodificación para una aplicación que estoy creando, y decidí usar Yahoo Maps. Escribí el contenedor de geocodificación API y algunas pruebas unitarias y lo llamé un día. Regresé al día siguiente, ejecuté las pruebas y descubrí que la latitud y la longitud habían cambiado. Eso sí, el cambio fue lo suficientemente pequeño como para no importarme, pero fue lo suficientemente significativo como para afectar el redondeo a 4 decimales que estaba usando en mi prueba unitaria para comparar el resultado.

Nunca antes había oído hablar de cambios de latitud y longitud. ¿Es esto algo que debo esperar / tener en cuenta? ¿Alguien puede explicar por qué?

¿Fue útil?

Solución

La geocodificación, especialmente cuando se realiza desde direcciones, rara vez es 100% precisa. Hay muchas empresas que no hacen nada más que compilar los datos de la calle utilizados con fines de geocodificación.

Los datos no son precisos, pero se actualizan con frecuencia para mejorar la coincidencia de direcciones. Cuando esto suceda, obtendrás un resultado diferente. Supongo que sucedió una de dos cosas:

1) Yahoo actualizó sus datos de origen.

2) Obtuvo un resultado de un servidor diferente con un conjunto diferente de datos de origen.

Otros consejos

¿Deriva continental?

Los algoritmos que utiliza la geocodificación son necesariamente imprecisos. Hacen ciertas conjeturas. Además de la información proporcionada anteriormente, consulte este documento técnico:

http://www.urisa.org/files/goldberg.pdf

Que habla de esos algoritmos.

Parece que podría haber un error de redondeo en los cálculos que se realizan.

¿Los resultados son consistentes ahora o sigue obteniendo resultados ligeramente diferentes?

Interesante.

Me parece muy parecido a las cosas que suceden cuando uno compara números 'reales' para la igualdad. La solución habitual a este 'problema' es calcular Abs [x-y] & Lt; tol donde x, y son sus números reales (o flotantes, o dobles) y tol es un número pequeño que representa su criterio para decidir que los números son lo suficientemente cercanos como para ser considerados iguales para sus propósitos.

El mapa no es el territorio

Algo que es realmente fácil para nosotros, como programadores, perder de vista es que los datos representan el mundo, NO son aspectos reales de el mundo.

Tienes otras respuestas que dicen lo mismo con más detalle, específicamente sobre geocodificación, pero vale la pena recordarlo en general también ...

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