6 votos

¿Existe algún método para crear un geocodificador offline a partir de los datos xml de OSM?

Estoy tratando de desarrollar un mapa de Android fuera de línea que hace uso de mosaicos de mapas OSM de 15 nivel de zoom, Para ello he utilizado una biblioteca de código abierto : Osmdroid

Ahora, estoy buscando la posibilidad de crear una geocodificación offline / geocodificación inversa que se pueda integrar con mi aplicación,

¿puedo utilizar Osm xml datos para ese propósito? si es así, entonces alguien puede sugerir / explicar cómo usarlo para crear SQlite db.. para ser utilizado wit mi aplicación

Espero no infringir ninguna de las condiciones de uso de datos.

Gracias

5voto

Neil Middleton Puntos 12203

Sí, puede utilizar los datos XML de OSM. Desafortunadamente es un archivo XML de 250GB. Tratar de poner todos esos datos en un dispositivo móvil es muy difícil.

No creo que SQLite sea la forma correcta de almacenar los datos del mapa, vas a necesitar algo más eficiente (en términos de eficiencia de espacio en disco). Hay un formato en desarrollo llamado OSM Mobile Binary Format, que puede ser adecuado:

Básicamente, divide el mundo en partes más o menos pequeñas y calcula de forma matemática cuál necesitas para una posición determinada en el mundo. Con este formato, la mayor parte del mundo debería caber en un smartphone normal.

Eso cubrirá la geocodificación inversa. Pero para la geocodificación necesitarás los datos al revés, tal vez una base de datos SQLite que contenga los nombres de las calles y ciudades con una coordenada lat/long para cada una. Una vez que tengas una latitud/longitud, puedes buscar rápidamente en los archivos OSM Mobile Binary para encontrar el resto de los metadatos relacionados con esa entrada.

Debes proporcionar tu propia réplica de los datos para todos los usuarios de tu aplicación. No puedes escribir una aplicación que descargue datos directamente de los servidores de openstreetmap. Se te incluirá en una lista negra. Esto podría significar que tendrías que vender tu aplicación por un precio simbólico para cubrir los costes del servidor.

En cuanto a la licencia, es creative commons/share alike. Tienes que dar una clara atribución a openstreetmap.org en algún lugar de tu aplicación, y cualquier modificación de los datos del mapa debe ser liberada bajo la misma licencia o equivalente (tu aplicación real puede tener cualquier licencia). Consulta la wiki de OSM para más detalles.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X