Ce que fait cet outil
Un fichier PMTiles est une archive binaire unique et plate de tuiles de carte, construite pour que chaque tuile puisse être extraite au moyen de simples requêtes HTTP par plage d'octets, sans passer par une base de données ni un serveur de tuiles en fonctionnement. Cette efficacité a un coût pour qui veut regarder à l'intérieur : il n'existe aucun moyen intégré de voir ce que contient réellement un fichier .pmtiles, sans configurer soi-même une bibliothèque cartographique ou passer par un outil en ligne de commande.
Cet outil supprime cette étape. Déposez un fichier, et il lit l'en-tête de 127 octets de l'archive ainsi que ses métadonnées JSON pour indiquer le format des tuiles, la plage de zoom, l'étendue géographique, ainsi que le nom, la description ou l'attribution que le fichier porte, puis affiche chaque tuile visible directement sur une carte Leaflet. Tout se passe localement : le fichier est lu directement depuis votre disque grâce à l'API File du navigateur, et rien n'est jamais envoyé à un serveur.
Comment l'outil lit un fichier PMTiles
L'outil utilise la bibliothèque JavaScript officielle « pmtiles », le même lecteur que celui utilisé par MapLibre GL, associée à une source basée sur un fichier qui lui permet d'extraire des plages d'octets directement depuis un fichier importé plutôt que par HTTP. Cette première lecture ne récupère que l'en-tête et le répertoire de tuiles compressé, ce qui suffit pour indiquer immédiatement la plage de zoom, l'étendue et le format de l'archive, avant même qu'une seule tuile ait été décodée.
Lorsque vous déplacez la carte et que vous zoomez, chaque tuile visible est demandée par ses coordonnées z/x/y. Le lecteur recherche ces coordonnées dans le répertoire de l'archive, organisé selon un identifiant de tuile basé sur une courbe de Hilbert, effectue une recherche binaire pour trouver le décalage et la longueur en octets de la tuile, récupère exactement ces octets, puis renvoie l'image brute de la tuile. Une petite couche Leaflet personnalisée encapsule cette recherche, si bien que les tuiles apparaissent simplement sur la carte comme avec n'importe quelle autre source de tuiles, y compris en réutilisant la tuile disponible la plus proche lorsque vous zoomez au-delà du niveau de zoom maximal enregistré dans l'archive.
PMTiles : histoire et informations techniques
PMTiles vient de Protomaps, un projet cartographique open source fondé sur l'idée qu'une carte n'a pas besoin d'un serveur derrière elle, seulement d'un fichier bien organisé et d'un moyen de servir des plages d'octets. Protomaps publie la spécification PMTiles elle-même dans le domaine public, tandis que les implémentations de référence du lecteur et de l'écrivain, en Go, JavaScript, Python et plusieurs autres langages, sont publiées sous licence BSD 3-Clause. Le format a connu plusieurs versions ; la version actuelle et la seule encore utilisée, v3, a remplacé les anciennes structures par le répertoire à courbe de Hilbert que le convertisseur MBTiles vers PMTiles de ce site implémente également.
Le problème que résout PMTiles est avant tout une question de coût et de complexité. Une pyramide de tuiles couvrant le monde entier peut contenir des centaines de millions de tuiles individuelles. La documentation de Protomaps donne l'exemple de 300 millions de tuiles qui, stockées comme des objets séparés, pourraient coûter environ $1,500 en frais de requêtes de stockage cloud et prendre des jours à téléverser. Une seule archive PMTiles regroupe toute cette pyramide dans un seul fichier, déduplique en interne les tuiles identiques (Protomaps indique des réductions de taille de 70% ou plus pour les fonds de carte vectoriels mondiaux), et permet à un simple hébergeur de fichiers statiques comme S3, Cloudflare R2 ou GitHub Pages de servir chaque tuile via de simples requêtes HTTP par plage, sans serveur de tuiles, base de données ni fonction serverless, bien que l'archive fonctionne aussi très bien depuis AWS Lambda ou Cloudflare Workers si vous souhaitez tout de même en placer un devant.
Quelques informations techniques utiles à connaître : il existe des bibliothèques de lecture officielles pour JavaScript, Python, Dart, Kotlin/JVM, Go, C++ et Rust, et le format est pris en charge directement par MapLibre GL JS, Leaflet et OpenLayers. PMTiles est conçu pour être en lecture seule ; il n'existe aucun moyen de mettre à jour quelques tuiles à l'intérieur d'une archive existante sans réécrire le fichier entier, un compromis voulu au service de la simplicité du format et de sa structure en fichier unique adaptée aux requêtes par plage d'octets. L'en-tête lui-même fait exactement 127 octets, assez petit pour qu'un lecteur le récupère en une seule requête et connaisse immédiatement la plage de zoom, l'étendue, le format des tuiles et le nombre de tuiles de l'archive, avant même de lire une seule tuile.
Guide étape par étape

Cliquez sur « Importer un fichier PMTiles » et choisissez un fichier .pmtiles, glissez-déposez-en un sur le panneau, ou cliquez sur « Essayer un exemple PMTiles » pour charger un petit exemple généré à la volée.

Les tuiles de l'archive sont lues directement depuis le fichier et affichées sur la carte. Le panneau d'informations sur le fichier indique le nombre de tuiles, le format, la plage de zoom, l'étendue et toute métadonnée provenant directement de l'en-tête du fichier.
Cas d'usage concrets
Les situations où ouvrir directement un fichier PMTiles, sans écrire une ligne de code, est vraiment utile.
- Vérifier un fichier PMTiles avant de le publier. Après avoir créé ou converti une archive PMTiles, l'ouvrir ici permet de confirmer que la plage de zoom, l'étendue et le format des tuiles sont corrects avant de la téléverser vers un hébergeur de fichiers statiques.
- Examiner un jeu de données ouvert téléchargé. Les projets qui distribuent des extraits PMTiles, comme des découpes régionales d'un fond de carte plus large, peuvent être ouverts directement pour voir ce qu'ils contiennent avant d'écrire le moindre code pour les exploiter.
- Vérifier une conversion MBTiles vers PMTiles. Après avoir converti un fichier avec un outil comme le convertisseur MBTiles vers PMTiles de ce site, recharger le résultat dans cet outil confirme que chaque tuile s'est retrouvée au bon endroit.
- Examiner un fond de carte avant de déployer une application cartographique. Les équipes qui développent une carte utilisable hors ligne ou auto-hébergée peuvent prévisualiser exactement l'archive PMTiles que leur application chargera, et repérer une plage de zoom incorrecte ou une zone vide avant la mise en production.
- Auditer un jeu de tuiles archivé. Comme PMTiles transporte ses propres métadonnées (nom, description, attribution, étendue), un fichier archivé depuis des années peut encore être identifié et vérifié sans aucune documentation externe.
Questions fréquentes
Qu'est-ce qu'un fichier PMTiles ?
PMTiles est un fichier binaire unique et plat qui contient un ensemble complet de tuiles de carte, adressées via un petit répertoire interne, de sorte que chaque tuile peut être lue au moyen de simples requêtes HTTP par plage. C'est ce qui permet de servir PMTiles directement depuis un hébergeur de fichiers statiques comme S3 ou GitHub Pages, sans serveur de tuiles ni base de données.
Quels formats de tuiles cet outil peut-il afficher sur la carte ?
Les formats de tuiles raster : PNG, JPEG, WebP et AVIF. L'en-tête du fichier indique lui-même lequel est utilisé, et l'outil le lit directement plutôt que de le deviner à partir de l'extension du fichier.
Pourquoi une archive vectorielle (MVT) ne montre-t-elle pas d'aperçu de carte ?
Les archives MVT (Mapbox Vector Tile) stockent des instructions de géométrie et de style, pas des images finies, et leur rendu nécessite un moteur de rendu de cartes vectorielles comme MapLibre GL, que ce site basé sur Leaflet n'intègre pas. Les métadonnées du fichier, la plage de zoom, l'étendue et les noms des couches vectorielles sont tout de même affichés, puisqu'ils proviennent directement de l'en-tête de l'archive et de ses métadonnées JSON.
Comment l'outil lit-il réellement le fichier ?
Il utilise la bibliothèque de lecture JavaScript officielle « pmtiles » avec l'API File du navigateur, si bien qu'un fichier importé est lu directement depuis le disque par petites plages d'octets, de la même manière que la bibliothèque lit une archive distante par HTTP. Le mécanisme ne change en rien lorsque la source est un fichier local plutôt qu'une URL.
Puis-je consulter le nombre de tuiles, la plage de zoom et l'étendue sans ouvrir un outil cartographique ?
Oui. Le panneau d'informations sur le fichier lit ces données directement depuis l'en-tête de 127 octets du fichier : zoom minimal et maximal, étendue géographique et nombre de tuiles adressées, le tout avant même qu'une seule tuile soit décodée.
Que se passe-t-il si je zoome au-delà du niveau de zoom maximal de l'archive ?
L'outil réutilise et recadre la tuile disponible la plus proche, puis l'agrandit : le même comportement de sur-zoom qu'affiche une carte web classique en bordure de ses images, plutôt que de laisser un espace vide.
Y a-t-il une limite de taille de fichier ?
Les fichiers importés sont limités à 100 MB. Comme PMTiles adresse les tuiles par plage d'octets plutôt que de charger tout le fichier en mémoire, parcourir une grande archive reste fluide même près de cette limite.
Mon fichier PMTiles est-il envoyé quelque part ?
Non. Le fichier est entièrement lu dans votre navigateur grâce à l'API File ; aucun octet n'est jamais envoyé à un serveur.
La lecture est assurée par la bibliothèque JavaScript officielle pmtiles. Aucun fichier n'est jamais envoyé à un serveur. Tuiles de carte © contributeurs d'OpenStreetMap.
Tuiles de carte © contributeurs d'OpenStreetMap, dessinées avec Protomaps (hébergé par KONAKTIVE), avec CARTO en secours.
