Makina Blog

Le blog Makina-corpus

Construire un MBTiles le long d'un itinéraire


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

Mise en place d’une passe­relle API entre Geotrek et Cirkwi

21/05/2025

Cet article présente le déve­lop­pe­ment de la passe­relle bidi­rec­tion­nelle permet­tant l’échange de données entre Cirkwi et Geotrek, ainsi que la confi­gu­ra­tion néces­saire à sa mise en service sur une instance Geotrek.
Voir l'article
Image
Encart pacerelle Cirkwi Geotrek

Nouvelle Jour­née Tech­nique du PRNSN : le numé­rique dans les pratiques spor­tives de nature

20/11/2024

Le 27 novembre 2024, Mont­pel­lier accueille la 18e Jour­née tech­nique du réseau natio­nal des sports de nature, orga­ni­sée par le PRNSN.
Voir l'article
Image
Encart Journée PRNSN 2024

Mini-guide à l’usage des collec­ti­vi­tés : l’Open Data, entre néces­sité et oppor­tu­nité

15/11/2024

Tout ce que vous avez toujours voulu savoir sur l’Open Data. Petit guide à desti­na­tion des collec­ti­vi­tés pour l’ap­pré­hen­der et se l’ap­pro­prier.
Voir l'article
Image
Guide ODbL

Inscription à la newsletter

Nous vous avons convaincus