KMZ

Qu’est-ce qu’un fichier KMZ ?

Un fichier KML avec ses images et ses icônes, compressés en un seul fichier.

Ce qu’est KMZ

KMZ est un conteneur : une enveloppe pour des flux encodés par autre chose. Il est utilisé pour la cartographie.

L’extension est .kmz et le nom complet Zipped KML. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.

D’où vient KMZ

Il vient de Keyhole. La spécification est OGC KML 2.3.

L’âge est utile à connaître pour une raison pratique : plus un format est ancien, plus les programmes ont eu le temps de l’apprendre.

La spécification est publique

Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.

Rien n’est jeté

KMZ enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.

Il peut contenir un dossier entier

KMZ enregistre un répertoire : les noms, les dossiers et la structure entre eux. C’est ce qui lui permet de remplacer un dossier dans une pièce jointe.

Ce qui ouvre KMZ

Google Earth et QGIS le lisent, comme la plupart des programmes du même genre.

Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.

L’ouvrir dans un navigateur

Aucun navigateur ne le lit.

C’est de loin la raison la plus fréquente de le convertir : non pas que le format soit mauvais, mais que l’endroit où vous voulez montrer le fichier ne sache pas le lire.

C’est un format de travail

KMZ est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.

Un ZIP avec une carte à l’intérieur

Un KMZ est une archive ZIP ordinaire contenant un document KML et tout ce que ce document référence : icônes personnalisées des repères, photographies, images de superposition au sol, parfois un modèle. Renommez-le en `.zip` et n’importe quel outil d’archive l’ouvre, ce qui n’est pas un détour — c’est la manière dont le format est spécifié.

Le KML à l’intérieur s’appelle par convention `doc.kml` et se trouve à la racine de l’archive. Tout le reste vit dans des dossiers à côté, référencé par chemin relatif, ce qui rend l’ensemble portable d’une manière qu’un KML brut n’est jamais.

Pourquoi Google Earth écrit du KMZ et pas du KML

Parce qu’un KML référençant des images sur votre propre ordinateur n’affiche rien chez quiconque. À partir du moment où une carte utilise une icône personnalisée, une photographie dans une bulle ou une superposition, le fichier cesse d’être autonome, et le partager produit une carte avec des pièces manquantes et sans aucune explication.

L’empaquetage résout cela complètement. Tout voyage ensemble, les chemins relatifs continuent de résoudre, et le destinataire ouvre un seul fichier. Google Earth utilise KMZ par défaut pour exactement cette raison, et c’est le bon défaut même pour une carte sans images encore — parce qu’une image finira par s’y ajouter.

La différence de taille n’est pas petite

KML est du XML verbeux, et les listes de coordonnées en particulier sont un texte extraordinairement redondant. La compression zippée ramène typiquement un grand jeu de données à un cinquième de sa taille, parfois un dixième, et cela avant même de considérer les images.

Pour un fichier envoyé par courriel ou placé derrière un lien, cela compte. Pour un fichier en cours d’édition, cela ne compte pas — dézippez, travaillez sur le KML dans un éditeur de texte ou dans Google Earth, puis rempaquetez. Rien n’est perdu dans un sens ni dans l’autre, parce que la compression est tout ce que fait le conteneur.

Quand dézipper un KMZ

Trois situations. Un outil qui lit le KML mais pas le KMZ, ce qui reste plus courant qu’il ne devrait parmi les utilitaires SIG et les visualiseurs web. Une édition en masse — un chercher-remplacer sur deux mille descriptions de repères est une opération textuelle et veut le fichier brut. Et le diagnostic, quand une carte n’affiche rien et que vous avez besoin de savoir si les images sont réellement dans le paquet ou seulement référencées.

Ce dernier cas est le plus utile. Ouvrez l’archive, regardez les dossiers, et comparez ce qui s’y trouve à ce que le KML demande. Une icône ou une superposition manquante apparaît immédiatement, et cela explique une classe de problèmes qui serait autrement invisible depuis l’intérieur de Google Earth.

Ce qui peut encore manquer dans un KMZ

L’empaquetage protège les fichiers locaux. Il ne fait rien pour les fichiers distants. Un KML qui tire une superposition d’une URL, ou utilise un lien réseau pour aller chercher des données en direct, dépend toujours de ce serveur — et un KMZ construit autour de cela fait quelques kilo-octets qui n’affichent rien une fois que la source disparaît.

L’autre trou concerne les polices et la mise en forme à l’intérieur des bulles de description, qui sont du HTML. Une bulle stylée avec une police que le destinataire n’a pas, ou pointant vers une image sur le web, se dégrade comme n’importe quelle page web. Si une carte doit fonctionner hors ligne et de manière permanente, tout ce dont elle a besoin doit être un fichier dans l’archive.

Construire un KMZ soi-même

Zippez le KML et ses dossiers de ressources ensemble, avec le KML à la racine de l’archive, et renommez le résultat en `.kmz`. C’est tout le processus — il n’y a pas d’outil spécial ni de manifeste à écrire.

Deux détails méritent d’être soignés. Zippez le contenu, et non le dossier englobant, sinon chaque chemin à l’intérieur du KML gagne un niveau de répertoire et rien ne résout. Et gardez les chemins relatifs tels qu’ils sont : les références à l’intérieur du KML sont ce à quoi la structure de l’archive doit correspondre, donc l’agencement des dossiers n’est pas cosmétique.

Là où un KMZ peut être ouvert

Google Earth, sur le bureau, sur mobile et dans la version navigateur. Google My Maps en importe un directement, ce qui est la manière habituelle dont une carte partagée finit sur le web. QGIS le lit pour le travail analytique, et la plupart des logiciels SIG sérieux le font, même si plusieurs le voudront converti en GeoJSON ou Shapefile d’abord.

Ce qui ne l’ouvre pas, c’est un navigateur par lui-même, un aperçu de client de messagerie, ou n’importe quel visualiseur généraliste. Envoyer un KMZ à quelqu’un qui n’utilise pas déjà Google Earth revient à envoyer un fichier et une instruction, ce qu’il vaut mieux savoir avant que cela devienne une conversation de support — un lien vers une vue My Maps est souvent la meilleure chose à envoyer.

Les données, au même endroit

Identifiants et origine du format KMZ.
Extension.kmz
Type de médiaapplication/vnd.google-earth.kmz
Publié parKeyhole
SpécificationOGC KML 2.3

Fichiers KMZ : questions courantes

Comment ouvrir un fichier KMZ ?

Google Earth en est la maison naturelle, sur le bureau, sur mobile ou dans le navigateur. Google My Maps en importe un directement si vous voulez le mettre sur le web, et QGIS le lit pour le travail analytique. Aucun navigateur n’en ouvre un par lui-même.

Quelle est la différence entre KMZ et KML ?

Un KMZ est une archive ZIP contenant le KML plus chaque icône, photographie et image de superposition qu’il référence. Un KML nu pointant vers des fichiers locaux n’affiche rien sur une autre machine, ce qui explique pourquoi Google Earth écrit du KMZ par défaut.

Peut-on ouvrir un KMZ avec un outil d’archive ?

Oui — renommez-le en .zip et n’importe quel outil d’archive l’ouvrira. Ce n’est pas un détour mais la manière dont le format est défini, et c’est le moyen le plus rapide de vérifier si les images d’une carte sont réellement à l’intérieur du paquet.

Comment créer un fichier KMZ ?

Zippez le KML avec ses dossiers de ressources, en gardant le KML à la racine de l’archive, puis renommez le résultat en .kmz. Zippez le contenu plutôt que le dossier englobant, sinon les chemins relatifs à l’intérieur du KML ne résoudront plus.

Pourquoi mon KMZ affiche-t-il encore des images manquantes ?

L’empaquetage ne couvre que les fichiers locaux. Tout ce que le KML va chercher à une URL — superposition distante, image dans une bulle de description, lien réseau — dépend toujours de ce serveur. Pour une carte qui doit fonctionner hors ligne, chaque ressource doit être à l’intérieur de l’archive.

Un KMZ est-il plus petit qu’un KML ?

Considérablement. KML est du XML verbeux et les listes de coordonnées se compriment extrêmement bien, donc un grand jeu de données tombe couramment à un cinquième de sa taille ou moins — avant même de tenir compte des images.