¿De veras hay librerías para mapas en Android?

Llevo unos días probando librerías para poder disponer de mapas en una aplicación Android preferiblemente en modo offline. La primera opción que se nos ocurre es, como no, la API de Google Maps, pero no sirve para trabajar offline dado que la licencia no permite almacenar sus mapas. Me gusta trabajar en C# si puedo elegir, así que me puse a buscar qué existía para entorno NET. Lo único que encontre bajo licencia Open Source fue OSMSharp que se instala sin problemas siempre y cuando el entorno no sea Android, así que descartada. Pasé al plan B y busqué librerías para Java. Las que probé son Unfolding, OSMDroid y Nutiteq. Estos son los resultados:

Unfolding

No está preparada para correr sobre Android, exige el uso de applets que quizás, no lo he probado, puedan incrustarse en este sistema operativo. Implementación muy interesante aunque parece orientada a grandes desarrollos.

Nutiteq

Ofrecen la versión 1 libre y la 2 con soporte 3D bajo licencia de prueba. Inconexa e incoherente. Sin problemas para cargar mapas online pero muy dificultosa para usarlos offline. Se supone que permite usar mapas en formato MGMaps/MyTrails pero el sistema de coordenadas con el que trabaja no es el mismo por lo que no encuentra los ficheros generados (¿?). Su página web es caótica y desordenada y la información escasa y poco útil. Buscando la solución a este problema en su foro encontrarás al moderador respondiendo lo mismo durante 2 pantallas en formato Arial sin conseguir arreglarlo. He probado la versión 1, mejor no imaginar como funcionará la 2.

OSMDroid

El gran clásico. Carga bien los mapas online pero, una vez más, resulta problemática con los mapas offline. Parece ser que lo han programado en MSDOS (o en una shell de Linux con vi) y no se les ha ocurrido otra cosa que fijar de una vez por todas y para siempre la ruta donde deben almacenarse dichos mapas: /sdcard/osmdroid. La pregunta es, ¿y si quiero cambiar la ruta? ¿y si lo necesito para hacer pruebas? Pues muy fácil, hay que descargarse el fuente y modificar la constante OSMDROID_PATH. Y tan anchos. Si trabajas con Monodroid encontrarás también en la página de Xamarin la manera de bindear esta librería para convertirla en una DLL compatible con NET. No te funcionará pero puedes probarlo si te apetece perder el tiempo. Para redondear: tiene un rendimiento muy pobre.

Seguiré experimentando a ver si encuentro algo desarrollado con dos dedos de frente.

P.D.: Estoy experimentado con MapsForge y no soy nada optimista. Esta librería permite trabajar con mapas vectoriales por lo que se generan ficheros más pequeños y más rápidos de cargar. Aún así nos encontramos con problemas parecidos: se supone que hay una herramienta, Osmosis, para convertir mapas en formato osm a vectoriales. Por esta vez la documentación es bastante completa, seria ideal si además funcionara. Es comprensible que una herramienta que para funcionar necesita tropecientos parámetros se ejecute en modo comando en una ventana MSDOS/Shell con la consabida modificación de la variable PATH del sistema. Otra genialidad prehistórica en el mundo de los sistemas operativos táctiles, todo un hito en el mundo del software.

Resumiendo. El mundo de la cartografía (para Android al menos): un desastre sin paliativos. Hacía mucho que no veía unos desarrollos tan cutres.

No hay comentarios:

Publicar un comentario