Makina Blog

Le blog Makina-corpus

Stocker un MBTiles volumineux sur une carte SD


   

Dans le cadre du développement d'une application mobile pour le recensement des espèces au sein du Parc National des Écrins, nous avions pour objectif de stocker les fonds de carte SCAN et ORTHO pour un usage en mode déconnecté.

Nous avons choisi de stocker les fonds tuilés au format MBTiles, et de les stocker sur le support amovible du téléphone (Carte SD).

Les niveaux de zooms attendus et la zone du parc à couvrir représentaient environ 22 Go. Or, le système de fichiers par défaut des cartes SD limite la taille des fichiers à 4 Go.

Nous ne pouvions pas changer le système de fichiers (ex: exFat), car ce n'était pas supporté sans rooter les terminaux. Nous avons donc opté pour un découpage des fichiers MBTiles.

Découper un fichier MBTiles

On découpe un gros fichier MBTiles en plusieurs petits. Le client cartographique du téléphone devra être modifié pour lire le fond de carte depuis plusieurs petits fichiers au lieu d'un seul volumineux.

Le découper par zone, comme par secteur ou vallée, pourrait s'avérer relativement complexe, aussi bien pour la préparation que pour la lecture. Quel fichier dois-je lire quand je visualise une étendue qui est à cheval sur deux zones ? De même pour un découpage rectangulaire (nord, sud, est, ouest…).

Nous avons donc choisi de découper le fichier en colonnes. 

Non, pas un fichier par colonne, sinon on en aurait des centaines ! La position (x, y) de chaque tuile (celle qu'on voit dans l'url lorsque celle-ci sont téléchargées) détermine le fichier MBTiles qui va la stocker à partir d'une règle toute simple : on prend le premier chiffre de la valeur du y.

Cette méthode idiote découpera le MBTiles en dix fichiers, de 0 à 9, correspondant à des colonnes abstraites. On aurait pu découper en colonnes par bande juxtaposées, mais cela nous aurait obligé à calculer beaucoup de choses, en fonction des y minimum et maximum.

De cette façon, c'est très simple à fabriquer et, côté client, celui qui consomme les tuiles, on sait immédiat dans quel fichier les tuiles doivent être lues :

  • z/12/8.png → fichier 1
  • z/7/5.png → fichier 7

Comme on découpe en 10 fichiers qui peuvent peser chacun 4 Go maximum, cela nous donne la possibilité de stocker jusqu'à 40 Go de fond carto sur une carte SD !

Le script qui découpe une pyramide en tuiles en 10 fichiers MBTiles distincts est en ligne. Le code client dépend de la bibliothèque mobile que vous utiliserez (Cordova, RouteMe, OSMdroid, Mapbox, …), n'hésitez pas à nous poser des questions !

Actualités en lien

Récolt’Ô est le lauréat des Trophées Inno­va­tion aux Aqua Busi­ness Days 2024

17/12/2024

L’ap­pli­ca­tion Récolt’Ô de valo­ri­sa­tion de l’eau de pluie remporte les Trophées Inno­va­tion Aqua Busi­ness Days 2024. Avec Récolt’Ô préser­vez votre terri­toire.
Voir l'article
Image
Trophée Aqua Business Days Récolt'Ô

Adapt’Ac­tion : contri­buez au futur de Récolt’Ô, parti­ci­pez au Hacka­thon Open Boos­ter

10/12/2024

Le 30 octobre dernier, Récolt’Ô a été nommé lauréat des Data Chal­­lenges Adapt’Ac­­tion. Pendant les 10 semaines du Hacka­thon à venir, nous unirons nos efforts pour accé­lé­rer le déve­lop­pe­ment de communs numé­riques dédiés à l’adap­ta­tion au chan­ge­ment clima­tique ! 🌱  
Voir l'article
Image
Open booster Hackaton 2024 2025

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

Inscription à la newsletter

Nous vous avons convaincus