2012-02-09 16 views
13

¿Es posible anular la fuente de las teselas que muestra Android MapView?¿Invalida la fuente de mosaico MapView?

Tengo algunos mosaicos de imágenes de mapas en una base de datos, y me gustaría utilizar los mapas de Google MapView para verlos.

Además, si esto no es posible ... ¿alguien sabe de una vista de mapa que no lo permite? (API de OpenStreetMap ... API de MapQuest ... etc)

Estoy buscando una solución que no dependa de la GPL/LGPL.

Respuesta

5

Puede usar algunas de estas bibliotecas: osmdroid, mapsforge. Ambos proporcionan una interfaz para algunas bases de datos de mapas de Internet y permiten crear su propio proveedor de mapas.

Le permiten tener (y manejar) su caché sin conexión, la carga dinámica de mapas asíncronos, el remuestreo en el zoom, la adición de superposiciones, etc., como lo hace MapView original. Otro buen punto para usar estas bibliotecas es que están bien diseñadas para la sustitución in situ de Google MapView.

También puede que le interese la API de Google Maps api, que también permite utilizar una fuente de mapas personalizada (consulte this link). Este enfoque se puede utilizar con el mapa de carga en su WebView. Pero en este caso todavía necesita la clave Google Maps API y estoy preocupado de que todavía esté limitado a 25000 usos por día.

ACTUALIZACIÓN == ==

Ahora, Google Maps para Android (que uno de Google Play Services) apoyar azulejos personalizados, por lo que ya no hay necesidad de utilizar las bibliotecas 3 ª parte para aplicar es el propietario azulejos (si el uso cumple con el acuerdo de licencia).

+0

Gracias por la respuesta. Lamentablemente, tanto osmdroid como mapsforge usan la licencia LGPL, que esperaba evitar. Voy a mirar en la API de JavaScript api embargo. ¡Gracias! – Matt

+0

Tenga en cuenta que si puede usar bibliotecas LGPL sin abrir su código, hasta que su aplicación no sea un trabajo derivado. Muchas aplicaciones comerciales utilizan bibliotecas LGPL (como Qt framework). – OleGG

+1

Además (si hablamos de licencias que no pertenecen a GPL), hay un nuevo marco de trabajo basado en JS (http://leaflet.cloudmade.com/). Como se dijo en la página web, está bien optimizado para usar en dispositivos móviles, pero aún no lo he probado. – OleGG

3

Puede crear un TileProvider para devolver mosaicos a la API de Maps. Luego use setMapType para establecer MAP_TYPE_NONE, y solo los mosaicos que proporcione estarán visibles. Sé que esto se puede hacer para un MapFragment, pero no lo he intentado con un MapView.

Consulte el código de ejemplo de Google en MapDemo TileOverlayDemo para ver un ejemplo.