Maneira simples de ter um mapa offline baseado na Web? [fechadas]

15

Meu objetivo é ter um mapa-múndi incorporado em uma página da web, mas sem acesso à internet. De preferência, apenas um conjunto de blocos em combinação com algum mapa slpy js-lib. O espaço de armazenamento não é realmente um problema e o nível máximo de zoom não é necessário.

Qual é a maneira mais fácil de conseguir isso?

Encontrei um projeto que parece se encaixar na conta - o Google Maps está em um bastão, mas parece estar morto?

tek
fonte
2
O que exatamente significa "o zoom máximo não é necessário"? Que tipo de escala / precisão / resolução você precisa?
Mr_Chimp
2
Mapnik (Windows) github.com/mapnik/mapnik/wiki/WindowsInstallation e uso localhost como o url (máquina local)
Mapperz
A precisão e a resolução não são importantes, países e prefeituras são suficientes, mas é claro que quero que seja o melhor possível. A simplicidade é mais importante, estou tentando evitar serviços e bancos de dados extras.
tek
1
Se você estiver disposto a passar alguns dias configurando no Windows, o mapnik + postgis + postgresql + proj.4 + python 2.7 + ... é uma opção, mas depois de passar por isso, recomendo pesquisar a resposta do TileMill abaixo. Parece muito mais fácil.
ca0v
É realmente simples. O único problema é obter os dados do mapa e os problemas de licenciamento envolvidos na criação de um sistema de mapas offline . Ou seja, a maioria dos provedores de mapas que permite o uso gratuito (por exemplo, google) o faz somente quando o mapa está disponível ao público. Mas essa é uma pergunta totalmente diferente ... Eu estava fazendo isso apenas no Reino Unido, então usei o SO Open Data, que é gratuito.
Mr_Chimp

Respostas:

17

Eu recomendaria procurar no TileMill, feito pelas mesmas pessoas que trabalhavam no Maps On A Stick. O TileMill fazia parte do Maps On A Stick ou é o que o Maps On A Stick se tornou - algo assim. Eu esqueço a conexão. De qualquer forma...

O TileMill permitirá que você carregue dados geográficos, estilize como quiser e, em seguida, crie um conjunto de blocos de mapa PNG para uma variedade de níveis de zoom.

A saída do TileMill é um arquivo .mbtiles. Este é apenas um banco de dados sqlite que contém os PNGs. Se você estiver trabalhando offline, provavelmente será mais fácil extrair os pngs para uma pasta (usando mbutil ) em vez de usar o sqlite para acessá-los.

Se o seu mapa for bastante simples (por exemplo, interação mínima), recomendo o uso do Leaflet na sua biblioteca de mapas.

No folheto, você precisará adicionar uma camada de mosaico (dica: use tms em vez de xyz).

Espero que ajude.

Edit: Algumas coisas a serem observadas.

1) Você deve estar ciente das restrições de licenciamento com qualquer dado de mapa que você usa (veja meu comentário na pergunta acima).

2) Se você chegar perto o suficiente para ver estradas, etc., espere ter vários GBs de blocos.

Mr_Chimp
fonte
Temos uma prova de conceito em funcionamento! Vou ter que investigar mais os problemas de licenciamento, mas essa é provavelmente a solução mais fácil.
tek
2

Outra opção seria algo como mapwingis . Não há necessidade de ladrilhos, ele lerá shapefiles.

Ian
fonte
O MapWinGIS é muito bom, mas a pergunta é especificada na Web.
Mr_Chimp
Ele dizia PAGE na web, não baseado na web, e não especificava acesso à internet, então eu assumi que isso significava servidor (ou local), o que seria bom para mapwingis. Usei-o de uma forma em um banco de dados do Access e não consigo imaginar que seria mais difícil de implementar em uma página da web.
31412 Ian
2

Eu encontrei um novo projeto chamado OpenMapTiles , que facilita muito o uso de mapas offline.

A configuração de um servidor lado a lado em sua máquina é muito fácil. Instale o Node.js (com npm) e siga as duas etapas em seus documentos: https://openmaptiles.org/docs/

Você pode fazer o download dos mapas no site deles (incluindo um mapa de todo o planeta, que agora tem aproximadamente 44 GB): https://openmaptiles.org/downloads/

Andrei M
fonte
1

Se você puder criar um arquivo MBTiles (por exemplo, com Tilemill), poderá converter esse arquivo em um pacote simples de blocos em pastas aninhadas que estejam em conformidade com o layout z / x / y esperado tilestache-seed.py, um script incluído no Tilestache. Aqui está um que eu fiz recentemente:

http://mike.teczno.com/img/hachure/labels/

Michal Migurski
fonte