Construire un MBTiles le long d'un itinéraire

Avec Landez, la zone couverte d'un fichier MBTiles peut suivre une ligne!

Le blog Makina-corpus

Avec Landez, la zone couverte d'un fichier MBTiles peut suivre une ligne!

Lorsque l'on crée un fichier MBTiles, avec Tilemill par exemple, la zone couverte est rectangulaire (bounding box).

Dans cet article, nous allons utiliser Landez pour construire un MBTiles dont la zone couverte suit un itinéraire de randonnée.

Initialement, `Landez a été développé pour construire des fonds de carte à la demande, avec pour objectif de permettre à des touristes d'avoir un carnet de voyage disponible hors connexion. Il s'agissait donc de couvrir la zone autour de chaque escale.

Pour un itinéraire, nous pouvons procéder de la même façon ! Pour chaque point de l'itinéraire, nous allons ajouter une zone de couverture large pour les niveaux de zoom faibles, et réduite pour les niveaux de zoom élevés.

from landez import MBTilesBuilder

# Un rayon pour les zooms faibles, l'autre # pour les zooms élevés. RADIUS_LARGE = 0.01 #  1 km RADIUS_SMALL = 0.05 #  500 m

# Niveaux de zooms pour le monde entier GLOBAL_ZOOMS = range(8) # Niveaux de zooms pour les rayons larges LOW_ZOOMS = range(8, 13) # Niveaux de zooms pour les rayons réduits HIGH_ZOOMS = range(13, 17)

mbtiles = MBTilesBuilder()

# On couvre le monde entier aux zooms faibles mbtiles.add_coverage(bbox=(-180, -90, 180, 90), zoomlevels=GLOBAL_ZOOMS)

# Itère sur les coordonnées qui consistuent # l'itinéraire coords = Trek.geometry.coords

for (lng, lat) in coords: # Construit les emprises à partir des rayons large = (lng - RADIUS_LARGE, lat - RADIUS_LARGE, lng + RADIUS_LARGE, lat + RADIUS_LARGE) small = (lng - RADIUS_SMALL, lat - RADIUS_SMALL, lng + RADIUS_SMALL, lat + RADIUS_SMALL)

# Ajoute ces emprises au MBTiles à construire mbtiles.add_coverage(bbox=large, zoomlevels=LOW_ZOOMS) mbtiles.add_coverage(bbox=small, zoomlevels=HIGH_ZOOMS)

# Télécharger et packager ! mbtiles.run()

Aussi simple que ça !

Nous allons mettre ce fonctionnement en place pour le développement de l'application mobile de Geotrek qui permettra de consulter les itinéraires et les fonds en mode déconnecté.

Actualités en lien

Image
Vidéo conférence SIG Webmapping Frédéric Rodrigo
23/11/2021

Vidéo conférence : Makina Maps, un serveur de fond de carte vectorielle basé sur OpenStreetMap

Visionnez la vidéo de la conférence de Frédéric RODRIGO, expert OpenStreetMap Makina Corpus, à l'Open Source Expérience 2021 : Makina Maps, un serveur de fond de carte vectorielle basé sur OpenStreetMap.

Voir l'article
Image
OppServe_Martinique_comparaison.png
23/11/2021

OppServe, gérez l'Observatoire Photographique des Paysages de votre territoire !

Découvrez OppServe pour intégrer vos photos, influencer les politiques d’aménagement et sensibiliser le public

 

Voir l'article
Image
Geotrek Rencontres 2021
01/10/2021

Les Rencontres Geotrek 2021, le rendez-vous de la communauté Geotrek!

Pour la 4ème édition des Rencontres Geotrek, le comité de pilotage propose aux utilisateurs et aux partenaires de cette application open source de se réunir les 14 et 15 octobre à Aix-En-Provence.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus