Un moyen simple d'avoir une carte Web hors ligne? [fermé]

15

Mon objectif est d'avoir une carte du monde intégrée dans une page Web, mais sans accès à Internet. De préférence seulement un ensemble de tuiles en combinaison avec une carte glissante js-lib. L'espace de stockage n'est pas vraiment un problème et le niveau de zoom maximum n'est pas requis.

Quelle est la manière la plus simple d'accomplir cela?

J'ai trouvé un projet qui semble correspondre au projet de loi - Cartes sur un bâton, mais il semble être mort?

tek
la source
2
Que signifie exactement "le zoom maximum n'est pas requis"? De quel type d'échelle / précision / résolution avez-vous besoin?
Mr_Chimp
2
mapnik (Windows) github.com/mapnik/mapnik/wiki/WindowsInstallation et utilisez localhost comme URL (machine locale)
Mapperz
La précision et la résolution ne sont pas importantes, les pays et les villes maires sont suffisants, mais bien sûr, je veux que ce soit aussi bon que possible. La simplicité est plus importante, j'essaie d'éviter les services et bases de données supplémentaires.
tek
1
Si vous êtes prêt à passer quelques jours à configurer sur Windows, alors mapnik + postgis + postgresql + proj.4 + python 2.7 + ... est une option, mais après l'avoir traversée, je vous recommande de rechercher la réponse TileMill ci-dessous. Cela semble beaucoup plus facile.
ca0v
C'est vraiment simple. Le seul problème est d'obtenir les données cartographiques et les problèmes de licence liés à la création d'un système de carte hors ligne . C'est-à-dire que la plupart des fournisseurs de cartes qui permettent une utilisation gratuite (par exemple Google) ne le font que lorsque la carte est accessible au public. Mais c'est une toute autre question ... Je ne le faisais que pour le Royaume-Uni, alors j'ai utilisé l'OS Open Data qui est gratuit.
Mr_Chimp

Réponses:

17

Je recommanderais de regarder dans TileMill qui est fabriqué par les mêmes personnes qui travaillaient sur Maps On A Stick. TileMill faisait partie de Maps On A Stick, ou est ce que Maps On A Stick est devenu - quelque chose comme ça. J'oublie la connexion. En tous cas...

TileMill vous permettra de charger des données géographiques, de les personnaliser comme vous le souhaitez, puis de créer un ensemble de tuiles de carte PNG pour une variété de niveaux de zoom.

La sortie de TileMill est un fichier .mbtiles. Ceci est juste une base de données sqlite qui contient les PNG. Si vous travaillez hors ligne, il est probablement plus facile d'extraire les pngs vers un dossier (en utilisant mbutil ) plutôt que d'utiliser sqlite pour y accéder.

Si votre carte est assez simple (c.-à-d. Interaction minimale), je recommanderais d'utiliser Leaflet pour votre bibliothèque de cartographie.

Dans le dépliant, vous devez ensuite ajouter une couche de tuiles (indice: utilisez tms plutôt que xyz).

J'espère que cela pourra aider.

Edit: Quelques choses à noter.

1) Vous devez être conscient des restrictions de licence avec toutes les données cartographiques que vous utilisez (voir mon commentaire sur la question ci-dessus).

2) Si vous vous approchez suffisamment pour voir les routes, etc., attendez-vous à avoir plusieurs Go de tuiles.

Mr_Chimp
la source
Vous avez une preuve de concept opérationnelle! Je vais devoir approfondir les problèmes de licence, mais c'est probablement la solution la plus simple.
tek
2

Une autre option serait quelque chose comme mapwingis . Pas besoin de tuiles, il lira les fichiers de formes.

Ian
la source
MapWinGIS est assez bon mais la question spécifiée sur le Web.
Mr_Chimp
Il disait PAGE Web, non basé sur le Web, et ne spécifiait pas d'accès Internet, donc j'ai supposé que cela signifiait basé sur le serveur (ou local), ce qui serait bien pour mapwingis. Je l'ai utilisé sous une forme dans une base de données Access et je ne peux pas imaginer qu'il serait plus difficile à implémenter dans une page Web.
Ian
2

J'ai trouvé un nouveau projet appelé OpenMapTiles , ce qui rend beaucoup plus facile d'avoir des cartes hors ligne.

La configuration d'un serveur de tuiles sur votre machine est très simple. Installez Node.js (avec npm) et suivez les deux étapes dans leurs documents: https://openmaptiles.org/docs/

Vous pouvez télécharger les cartes depuis leur site Web (y compris une carte de la planète entière, qui fait maintenant environ 44 Go): https://openmaptiles.org/downloads/

Andrei M
la source
1

Si vous pouvez créer un fichier MBTiles (par exemple avec Tilemill), vous pouvez convertir ce fichier en un simple sac de tuiles dans des dossiers imbriqués conformes à la disposition z / x / y attendue à l'aide d' tilestache-seed.pyun script inclus avec Tilestache. En voici une que j'ai faite récemment:

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

Michal Migurski
la source