Existe-t-il un moyen d'afficher une carte pour une zone donnée complètement hors ligne à l'aide de HTML et de JavaScript? Je suis à la recherche d'une solution adaptée aux mobiles (lire Cordova).Carte HTML hors ligne avec mosaïques locales via la brochure
4
A
Répondre
5
Il existe une solution élégante pour ce problème dans this blog post. J'ai compilé un exemple de code complet à partir de celui-ci. Voici les étapes:
1. Créer des tuiles carte
- télécharger Mobile Atlas Creator
- créer un nouvel atlas avec OSMdroid ZIP Format
- carte marque et sélection zoom, ajoutez votre sélection l'atlas
- cliquez sur "Créer un atlas"
- décompressez le fichier de l'atlas
- vos tuiles ont ce format: {atlas_name}/{z}/{x}/{y} .png ({z} signifie "zoom")
2. Mettre en place HTML et JavaScript
- copie de votre dossier atlas à la racine de votre HTML
- télécharger leaflet.js and leaflet.css et les copier à la racine html
- créer index.html avec le code ci-dessous
- ajuster à partir des coordonnées et un zoom sur la ligne où var mymap est défini
- changement atlasName à votre nom de dossier, définissez votre choix maxZoom
3. Vous êtes tous ensemble ! Prendre plaisir!
- run index.html dans votre navigateur
<!DOCTYPE html>
<html>
\t <head>
\t \t <title>Leaflet offline map</title>
\t \t <link rel="stylesheet" charset="utf-8" href="leaflet.css" />
\t <script type="text/javascript" charset="utf-8" src="leaflet.js"></script>
\t \t <script>
\t \t \t function onLoad() {
\t \t \t \t var mymap = L.map('mapid').setView([50.08748, 14.42132], 16);
\t \t \t \t L.tileLayer('atlasName/{z}/{x}/{y}.png',
\t \t \t \t { maxZoom: 16 }).addTo(mymap);
\t \t \t }
\t \t </script> \t
\t </head>
\t <body onload="onLoad();">
\t \t <div id="mapid" style="height: 500px;"></div>
\t </body>
</html>