OnlineMapMaker logo

Convertisseur MBTiles vers PMTiles

Convertissez un paquet de tuiles MBTiles en un vrai fichier PMTiles conforme à la spécification, puis téléchargez-le. Tout se passe dans votre navigateur, rien n'est envoyé en ligne. Ouvrir la version plein écran →

Rate this tool:
Publicité
Publicité
Loading converter…
Besoin d'aide pour votre projet SIG ?Découvrir Nos Services

Pourquoi convertir un fichier MBTiles en PMTiles

Depuis plus de dix ans, MBTiles est la méthode standard pour regrouper tout un jeu de tuiles cartographiques dans un seul fichier, et des outils comme TileMill, Mapbox Studio et QGIS l'utilisent encore comme format d'export par défaut. Mais un fichier MBTiles est une base de données SQLite, ce qui veut dire que lire ne serait-ce qu'une seule tuile demande un moteur SQLite, que ce soit la bibliothèque intégrée d'une application mobile ou un processus complet de serveur de tuiles tournant quelque part sur un serveur.

PMTiles supprime entièrement cette contrainte. C'est un seul fichier binaire plat où chaque tuile se trouve à un emplacement d'octets connu, référencé par un petit annuaire (directory) que le client peut télécharger une fois et mettre en cache. Un navigateur ou une bibliothèque cartographique récupère ensuite chaque tuile grâce à de simples requêtes HTTP par plage d'octets (range requests), ce qui permet de servir un fichier PMTiles directement depuis un hébergeur de fichiers statiques comme S3, Cloudflare R2 ou GitHub Pages, sans aucun serveur de tuiles, sans base de données et sans le moindre traitement côté serveur.

Cet outil fait le pont entre les deux formats sans aucune installation. Déposez un fichier MBTiles et il lit directement la table des tuiles dans la base SQLite embarquée, corrige la différence de coordonnées entre les deux formats, puis assemble un fichier PMTiles valide octet par octet, le tout dans l'onglet de votre navigateur.

Publicité
Publicité

Comment fonctionne la conversion

Aucune bibliothèque JavaScript ou WebAssembly existante ne sait écrire un fichier PMTiles : le paquet officiel "pmtiles" est un lecteur uniquement, conçu pour consommer des archives via HTTP, pas pour en produire. Ce convertisseur implémente donc directement le format binaire PMTiles v3 à partir de sa spécification publiée : un en-tête de 127 octets contenant les décalages du fichier, la plage de niveaux de zoom et les limites géographiques ; un annuaire compressé en gzip des emplacements de tuiles ; et enfin les octets bruts des tuiles elles-mêmes.

Deux détails comptent le plus pour obtenir une conversion correcte. D'abord, MBTiles stocke les lignes de tuiles dans l'ordre "TMS", en comptant depuis le sud, alors que PMTiles compte depuis le nord comme la plupart des cartes web modernes ; le convertisseur inverse la coordonnée Y de chaque tuile avec la formule standard avant de l'utiliser. Ensuite, PMTiles n'adresse pas les tuiles directement par z/x/y : chaque tuile reçoit un identifiant unique issu d'une courbe de Hilbert, un choix précis car cette courbe garde les tuiles géographiquement proches regroupées dans le fichier final, ce qui permet à un visualiseur de carte de charger une petite zone avec très peu de requêtes HTTP. Chaque tuile est triée selon cet identifiant, écrite dans le fichier dans cet ordre, puis indexée dans un annuaire compressé qu'un lecteur parcourt par recherche binaire pour retrouver n'importe quelle tuile.

Le résultat produit par ce convertisseur a été vérifié à l'aide de la bibliothèque de lecture officielle "pmtiles" elle-même, le même code qu'utilise MapLibre GL pour ouvrir de vraies archives, confirmant que chaque tuile écrite revient identique à l'octet près une fois relue, aussi bien pour de petits jeux de tuiles que pour des archives assez volumineuses pour nécessiter le découpage de l'annuaire du format prévu pour un très grand nombre de tuiles.

Guide étape par étape

MBTiles to PMTiles converter with the Choose File button and Try sample link visible
Étape 1

Choisissez un fichier .mbtiles sur votre ordinateur, ou cliquez sur "Essayer un exemple" pour charger un petit jeu de tuiles synthétique généré sur place.

Map preview of the source MBTiles tiles before conversion
Étape 2

Les tuiles source sont lues depuis le fichier MBTiles et affichées sur la carte, afin que vous puissiez vérifier que le bon jeu de tuiles a été chargé avant de lancer la conversion.

Convert to PMTiles button ready to click
Étape 3

Cliquez sur "Convertir en PMTiles". La conversion se déroule entièrement dans votre navigateur : lecture de chaque tuile, calcul de sa position sur la courbe de Hilbert, puis assemblage du fichier PMTiles.

Conversion result panel showing tile count, zoom range, format, bounds, and file size
Étape 4

Un résumé s'affiche : le nombre de tuiles converties, la plage de niveaux de zoom, le format des tuiles, les limites géographiques et la taille du fichier PMTiles obtenu.

Download .pmtiles button
Étape 5

Cliquez sur "Télécharger le .pmtiles" pour enregistrer le fichier terminé sur votre ordinateur.

Publicité
Publicité

Cas d'usage concrets

Voici les situations où passer de MBTiles à PMTiles apporte un vrai bénéfice.

  1. Publier des tuiles sur un hébergeur de fichiers statiques. PMTiles peut être servi directement depuis S3, Cloudflare R2, GitHub Pages ou n'importe quel hébergeur de fichiers simple grâce aux requêtes HTTP par plage d'octets, sans aucun processus de serveur de tuiles en fonctionnement, ce qu'un fichier SQLite MBTiles ne peut pas faire seul.
  2. Moderniser un ancien export MBTiles. Les paquets de tuiles exportés il y a plusieurs années depuis TileMill, Mapbox Studio ou QGIS sont encore souvent au format MBTiles. Les convertir en PMTiles les rend utilisables dans les piles cartographiques actuelles (MapLibre, Protomaps) sans avoir à régénérer les tuiles à partir des données source.
  3. Réduire l'infrastructure d'un petit projet cartographique. Un seul fichier PMTiles statique évite d'avoir à faire tourner et à maintenir un serveur de tuiles dédié juste pour servir un jeu de tuiles modeste et essentiellement statique, ce qui réduit le coût d'hébergement et le nombre de composants pour les petits sites et les outils internes.
  4. Préparer des paquets cartographiques hors ligne pour des applications de terrain. Les applications de collecte de données terrain et de cartographie hors ligne lisent de plus en plus souvent le format PMTiles directement depuis le stockage local. Convertir des fonds de carte MBTiles existants permet d'utiliser un seul format de fichier à la fois dans l'application hors ligne et dans toute carte web partageant la même imagerie.
  5. Archiver des jeux de tuiles dans un format adapté au cloud. Comme les tuiles PMTiles sont adressées par plage d'octets plutôt que par des requêtes de base de données, un fichier PMTiles archivé peut être inspecté, partiellement récupéré ou servi des années plus tard sans nécessiter l'installation d'un moteur de base de données particulier.

Questions fréquentes

Qu'est-ce que PMTiles, et en quoi est-ce différent de MBTiles ?

Les deux formats regroupent tout un jeu de tuiles cartographiques dans un seul fichier, mais MBTiles est une base de données SQLite, ce qui nécessite un moteur SQLite pour lire ne serait-ce qu'une seule tuile. PMTiles est un simple fichier binaire conçu pour qu'un serveur web (ou même un hébergeur de fichiers statiques comme S3 ou GitHub Pages) puisse servir des tuiles individuelles grâce à de simples requêtes HTTP par plage d'octets, sans aucun serveur de tuiles ni base de données en fonctionnement.

Cet outil implémente-t-il vraiment le format PMTiles, ou s'appuie-t-il sur une bibliothèque existante ?

Il implémente directement le format binaire PMTiles v3 : l'en-tête de 127 octets, l'annuaire de tuiles compressé en gzip et adressé par un identifiant de tuile issu d'une courbe de Hilbert, ainsi que la section des données de tuiles. D'après ce que nous avons pu vérifier en construisant cet outil, aucune autre bibliothèque JavaScript fonctionnant dans le navigateur ne sait écrire un fichier PMTiles : le paquet officiel "pmtiles" est un lecteur uniquement. Il a donc fallu tout construire à partir de la spécification publiée.

Comment la validité du résultat a-t-elle été vérifiée ?

Chaque fichier produit par cet outil a été testé en le relisant avec le lecteur du paquet npm officiel "pmtiles", le même code qu'utilisent MapLibre et d'autres outils pour ouvrir de vraies archives PMTiles, en confirmant que chaque tuile revient identique à l'octet près. Cette vérification a été faite aussi bien sur de petits fichiers que sur des archives assez volumineuses pour nécessiter le découpage en "leaf directory" (annuaires secondaires) prévu par le format.

Pourquoi les coordonnées Y comptent-elles pour cette conversion ?

MBTiles stocke les lignes de tuiles de haut en bas dans l'ordre "TMS", en comptant depuis le sud. PMTiles, comme la plupart des cartes web modernes, compte depuis le nord. Le convertisseur inverse la coordonnée Y de chaque tuile avec la formule standard, y_new = 2^z − 1 − y_old, avant de calculer sa position dans le fichier de sortie, afin que les tuiles se retrouvent au bon endroit.

Cela fonctionne-t-il aussi bien pour les tuiles vectorielles que pour l'imagerie matricielle (raster) ?

Oui. Le convertisseur lit le champ "format" dans la table de métadonnées MBTiles pour distinguer les tuiles matricielles PNG, JPEG et WebP des tuiles vectorielles PBF/MVT, et définit le type de tuile correct dans l'en-tête PMTiles afin que des outils comme MapLibre GL sachent comment les afficher.

Mes métadonnées (nom, description, attribution, couches vectorielles) seront-elles conservées ?

Oui. Le nom, la description, l'attribution et, pour les jeux de tuiles vectorielles, le schéma "vector_layers" de la table de métadonnées MBTiles sont copiés dans le bloc de métadonnées PMTiles, stocké sous forme de JSON brut à l'intérieur du fichier.

Y a-t-il une limite de taille ou de nombre de tuiles ?

Les fichiers envoyés sont limités à 100 Mo. Les très gros paquets de tuiles (des dizaines de milliers de tuiles) demandent plus de temps de traitement, car chaque tuile est lue, positionnée sur une courbe de Hilbert, puis réécrite, le tout dans l'onglet de votre navigateur.

Que devient l'ordre des tuiles à l'intérieur du fichier ?

Les tuiles sont triées selon un identifiant issu d'une courbe de Hilbert avant d'être écrites, de sorte que les tuiles proches les unes des autres sur la carte se retrouvent aussi proches les unes des autres dans le fichier. C'est ce qui permet à un lecteur PMTiles de récupérer une petite zone de la carte avec très peu de requêtes HTTP par plage d'octets, au lieu d'une requête par tuile.

Mon fichier MBTiles est-il envoyé quelque part ?

Non. La lecture de la base de données SQLite, le calcul des positions des tuiles, la compression des annuaires et l'assemblage final des octets PMTiles se font tous localement dans votre navigateur, grâce à une version WebAssembly de SQLite. Le fichier ne quitte jamais votre appareil.

La conversion se déroule entièrement dans votre navigateur grâce à une version WebAssembly de SQLite. Aucun fichier n'est jamais envoyé à un serveur. Tuiles cartographiques © contributeurs d'OpenStreetMap.

Tuiles de carte © contributeurs d'OpenStreetMap, dessinées avec Protomaps (hébergé par KONAKTIVE), avec CARTO en secours.

Muhammad Gulraiz Khan, expert GIS et fondateur de KONAKTIVE et OnlineMapMaker.com

À Propos de l’Auteur

Muhammad Gulraiz Khan

Expert et Consultant GIS · Fondateur de KONAKTIVE

Muhammad Gulraiz Khan est un expert GIS avec plus d’une décennie d’expérience professionnelle dans la fourniture de solutions géospatiales pour le secteur de l’énergie, notamment des projets pour la Banque mondiale, la Société financière internationale (IFC) et l’USAID. Il a créé OnlineMapMaker.com pour rendre les outils de cartographie professionnels gratuits et accessibles à tous.

Publicité
Publicité