2017-04-25 1 views

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>