App Web per mappe piastrellate offline


23

Non sono sicuro se pubblicare questo qui o su StackOverflow, in quanto è una specie di crossover. Lasciami provare.

Nello standard HTML5 proposto, c'è la possibilità di archiviare i dati delle applicazioni Web in una cache locale usando a manifest cache . Sto cercando di utilizzare questa tecnica per un'applicazione offline di mappe web piastrellate e ho fatto un prototipo rapido qui basato su un'installazione standard di Geoserver.

Ho appena strappato la pagina del client OpenLayers che viene generata da uno dei livelli predefiniti e ho cambiato il <html> tag in

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

E creato il file cache.manifest che legge semplicemente

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

Il che dovrebbe, nella mia limitata comprensione della questione, memorizzare nella cache locale tutto ciò che viene caricato da quell'URL: tutti i riquadri e OpenLayers JS. In effetti, alla prima chiamata in Firefox, mi chiede di consentire l'archiviazione locale, ma quando premo refresh - sia online che offline - la pagina gracchia affermando che l'oggetto OpenLayers non è definito. Sembra che non abbia caricato OpenLayers JS.

Qualcuno ha eseguito correttamente un'app per mappe Web piastrellata funzionante offline basata su OpenLayers? O suggerimenti su come indagare ulteriormente?

Risposte:


9

Potresti essere interessato ai progetti Maps su Stick e MapBox iPad. (disclaimer: progettato il primo, coinvolto nel secondo. tuttavia, entrambi hanno la licenza BSD e il formato di riquadro sottostante, chiamato " .mbtiles", è basato su SQL.)

Maps on a Stick è una mappa OpenLayers offline. Il ragionamento principale per utilizzare un database / server portatile anziché l'archiviazione lato client è che l'utilizzo dei browser come archiviazione di dati di grandi dimensioni non è del tutto risolto e il popolamento e l'indicizzazione della cache possono essere costosi.


Soluzione interessante, non a quello a cui stavo pensando ma sembra fattibile. Quanto è facile o difficile caricare MapBox / Maps su una chiavetta con strati di tessere personalizzati?
mvexel,

1
È relativamente semplice: ci sono alcuni strumenti: un importatore basato su C ( github.com/developmentseed/mb_tiles_importer ), una versione di gdal2tiles che genera mbtiles ( github.com/developmentseed/gdal2mb ) e uno strumento GUI imminente.
tmcw,

4

Pensa che dovrai creare la tua tilecache su "localhost", vedi http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

Esempi

    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: non deve avere spazi


Ciò è utile ma richiede un server Web locale, che potrebbe non essere sempre possibile, ad esempio quando si desidera che funzioni su un iPhone / iPad. In generale, sto cercando di raggiungere questo obiettivo senza requisiti sul lato client diversi da un browser Web esperto HTML5 / cache manifest.
mvexel,


1
Ho già collegato a quella pagina nella domanda originale. So che questa è la strada da percorrere, ma sto cercando di scoprire se è fattibile.
mvexel,

3

Una complessità che sembra apparire negli articoli su questo è che:

Si noti che il tipo MIME del file manifest è text / cache-manifest.

E tutti gli esempi sembrano elencare file specifici da memorizzare nella cache (ma potrei aver bisogno di leggere oltre).


Questa è una cosa che non mi è chiara: se è necessario autorizzare specifici URL concreti o utilizzare prefissi URL. Non sono stato ancora in grado di testarlo. Qualcuno che ha?
mvexel,

3

Forse un altro approccio: Geopublisher http://www.geopublishing.org/ può pubblicare le tue mappe per l'utilizzo offline. Geopublisher è un software desktop che consente di collegare dati vettoriali e raster e creare mappe digitali. Quindi è possibile esportare questa mappa come un'applicazione Java autonoma. Crea anche file di avvio automatico ecc. E non richiede un'installazione Java sui computer di destinazione.

AGGIORNAMENTO 2018: Geopublisher non è più sviluppato attivamente.


nota: la destinazione è in tedesco anche se l'URL è nella versione inglese del sito. Per correggere individuare il collegamento [inglese] nella colonna di navigazione a sinistra.
matt wilkie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.