Aplicativo da web de mapa lado a lado offline


23

Não tenho certeza se publicarei isso aqui ou no Stackoverflow, pois é uma espécie de crossover. Deixe-me tentar.

No padrão HTML5 proposto, há a opção de armazenar dados de aplicativos da Web em um cache local usando um manifesto de cache . Estou procurando usar essa técnica para um aplicativo de mapa da web em mosaico offline e fiz um protótipo rápido aqui com base em uma instalação padrão do Geoserver.

Acabei de copiar a página do cliente OpenLayers gerada a partir de uma das camadas padrão e alterei a <html>tag para

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

E criou o arquivo cache.manifestque simplesmente lê

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

O que deve, no meu entendimento limitado do assunto, armazenar em cache localmente tudo o que é carregado a partir dessa URL: todos os blocos e o OpenLayers JS. De fato, na primeira chamada no Firefox, ele me pede para permitir o armazenamento local, mas quando pressiono a atualização - online ou offline - a página resmunga afirmando que o objeto OpenLayers não está definido. Parece que ele não carregou o OpenLayers JS.

Alguém conseguiu com sucesso um aplicativo de mapa da web em mosaico offline e baseado em OpenLayers? Ou dicas sobre como investigar isso mais?

Respostas:


9

Você pode estar interessado nos projetos Mapas em um iPad Stick e MapBox. (exoneração de responsabilidade: projetou o primeiro, envolvido no último. no entanto, ambos são licenciados por BSD e o formato de bloco subjacente, denominado " .mbtiles", é baseado em SQL.)

O Maps on a Stick é um mapa offline do OpenLayers. O principal motivo para optar por um banco de dados / servidor portátil em vez do armazenamento no lado do cliente é que o uso de navegadores como armazenamento de dados grande não é bem elaborado e o preenchimento e a indexação do cache pode ser caro.


Solução interessante, não o que eu estava pensando, mas parece viável. Quão fácil ou difícil é carregar o MapBox / Maps em um Stick com camadas de blocos personalizadas?
Mv2

1
É relativamente simples: existem algumas ferramentas - um importador baseado em C ( github.com/developmentseed/mb_tiles_importer ), uma versão do gdal2tiles que gera mbtiles ( github.com/developmentseed/gdal2mb ) e uma ferramenta GUI futura.
tmcw

4

Pense que você precisará criar seu próprio tilecache no 'localhost', consulte http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

Exemplos

    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: não deve ter espaços


Isso é útil, mas requer um servidor da web local, o que nem sempre é possível, por exemplo, quando você deseja que ele seja executado em um iPhone / iPad. Em geral, pretendo fazer isso sem nenhum requisito no lado do cliente que não seja um navegador da web experiente em HTML5 / cache.
Mvexel


1
Eu já vinculei a essa página na pergunta original. Sei que esse é o caminho a seguir, mas estou tentando descobrir se é viável.
Mvexel #

3

Uma complexidade que parece aparecer em artigos sobre isso é que:

Observe que o tipo MIME do arquivo de manifesto é manifesto de texto / cache.

E todos os exemplos parecem listar arquivos específicos para armazenar em cache (mas talvez seja necessário ler mais).


Isso é algo que não está claro para mim: se você precisa colocar na lista branca URLs concretos específicos ou pode usar prefixos de URL. Ainda não pude testar isso. Alguém que tem?
Mvexel

3

Talvez outra abordagem: o Geopublisher http://www.geopublishing.org/ possa publicar seus mapas para uso offline. O Geopublisher é um software de desktop que permite conectar dados vetoriais e raster e criar mapas digitais. Em seguida, você pode exportar esse mapa como um aplicativo Java independente. Ele até cria arquivos de inicialização automática etc. e não requer uma instalação Java nos computadores de destino.

ATUALIZAÇÃO 2018: O Geopublisher não é mais desenvolvido ativamente.


nota: o destino está em alemão, mesmo que o URL seja para a versão em inglês do site. Para corrigir, localize o link [english] na coluna de navegação esquerda.
28512 Marte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.