Aplicación web de mapa en mosaico sin conexión

23

No estoy seguro de si publicar esto aquí o en Stackoverflow, ya que es una especie de cruce. Déjame intentarlo.

En el estándar HTML5 propuesto, existe la opción de almacenar datos de aplicaciones web en un caché local utilizando un manifiesto de caché . Estoy buscando utilizar esta técnica para una aplicación de mapa web en mosaico fuera de línea e hice un prototipo rápido aquí basado en una instalación estándar de Geoserver.

Acabo de extraer la página del cliente OpenLayers que se genera a partir de una de las capas predeterminadas y cambié la <html>etiqueta a

<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

Y creó el archivo cache.manifestque simplemente lee

CACHE MANIFEST
http://lima.schaaltreinen.nl:8080/

Lo que debería, en mi comprensión limitada del asunto, almacenar en caché localmente todo lo que se carga desde esa URL: todos los mosaicos y OpenLayers JS. De hecho, en la primera llamada en Firefox, me pide que permita el almacenamiento local, pero cuando presiono actualizar, ya sea en línea o fuera de línea, la página se rompe y dice que el objeto OpenLayers no está definido. Parece que no ha cargado el OpenLayers JS.

¿Alguien hizo con éxito una aplicación de mapa web en mosaico fuera de línea basada en OpenLayers? ¿O insinúa cómo investigar esto más a fondo?

mvexel
fuente

Respuestas:

9

Puede que le interesen los proyectos Mapas en un Stick y un iPad MapBox. (descargo de responsabilidad: diseñó el primero, involucrado en el segundo. sin embargo, ambos tienen licencia BSD y el formato de mosaico subyacente, denominado " .mbtiles", está basado en SQL).

Maps on a Stick es un mapa de OpenLayers sin conexión. El principal razonamiento para utilizar una base de datos / servidor portátil en lugar del almacenamiento del lado del cliente es que el uso de navegadores ya que el almacenamiento de datos de gran tamaño no está del todo resuelto y poblar e indexar el caché puede ser costoso.

tmcw
fuente
Solución interesante, no es lo que estaba pensando, pero parece viable. ¿Qué tan fácil o difícil es cargar MapBox / Maps en un Stick con capas de mosaico personalizadas?
mvexel
1
Es relativamente simple: hay algunas herramientas: un importador basado en C ( github.com/developmentseed/mb_tiles_importer ), una versión de gdal2tiles que genera mbtiles ( github.com/developmentseed/gdal2mb ) y una herramienta GUI próxima.
tmcw
4

Piense que necesitará crear su propio tilecache en 'localhost', consulte http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

Ejemplos

    Using vmap
    http://localhost:8081/vmap0/levelzero/0/0.png
    The tile near the middle of the tile set in the third zoom level of vmap0.
    http://localhost:8081/vmap0/leveltwo/3/4.png
    The tile near the middle of the tile set in the fifth zoom level of landsat2000.
    hhttp://localhost:8081/vmap0/landsat2000/1/8500/8500.png
Source:
    The tile at the origin of the tile set in the first zoom level of basemap.
    http://www.osgeo.org/services/basemap/L1/0/0.png

Nota: no debe tener espacios

Mapperz
fuente
Esto es útil, pero requiere un servidor web local, que no siempre es factible, por ejemplo, cuando desea que se ejecute en un iPhone / iPad. En general, estoy buscando lograr esto sin ningún requisito en el lado del cliente que no sea un navegador web experto en manifiesto HTML5 / caché.
mvexel el
1
Ya hice un enlace a esa página en la pregunta original. Sé que este es el camino a seguir, pero estoy tratando de averiguar si es factible.
mvexel
3

Una complejidad que parece aparecer en los artículos sobre esto es que:

Tenga en cuenta que el tipo MIME del archivo de manifiesto es text / cache-manifest.

Y todos los ejemplos parecen enumerar archivos específicos para almacenar en caché (pero es posible que necesite leer más).

Ian Turton
fuente
Eso es algo que no me queda claro: si necesita incluir en la lista blanca URL concretas específicas o si puede usar prefijos URL. Todavía no he podido probar esto. Alguien que tiene?
mvexel el
3

Quizás otro enfoque: Geopublisher http://www.geopublishing.org/ puede publicar sus mapas para su uso sin conexión. Geopublisher es un software de escritorio que le permite conectar datos vectoriales y rasterizados y crear mapas digitales. Luego puede exportar este mapa como una aplicación Java independiente. Incluso crea archivos de inicio automático, etc. y no requiere una instalación de Java en las computadoras de destino.

ACTUALIZACIÓN 2018: Geopublisher ya no se desarrolla activamente.

alfonx
fuente
nota: El destino está en alemán, aunque la url corresponde a la versión en inglés del sitio. Para solucionarlo, ubique el enlace [inglés] en la columna de navegación de la izquierda.
Matt Wilkie