Types MIME et header PHP pour fichiers KML et KMZ

KML KMZ exemples et tutoriels en Français

API Google Maps JavaScript version 3

Google Earth et Google Maps sont capables de lire des fichiers KML et KMZ. Afin qu'ils puissent interpréter correctement vos fichiers KML ceux-ci doivent respecter un certain nombre de régles.

Un fichier KMZ est en fait un fichier KML compressé ou zippé, d'ou l'appelation (remplacement du L final par un Z). Il vous suffit donc de décompresser votre fichier KMZ pour découvrir son contenu au format KML.

Fihier KML

Le type MIME à utiliser pour un fichier KML est :

  application/vnd.google-earth.kml+xml

Avec PHP il faut utiliser le header suivant :

  header('Content-type: application/vnd.google-earth.kml+xml');

Pour Apache, ajoutez les lignes suivantes au fichier httpd.conf :

  AddType application/vnd.google-earth.kml+xml .kml

Fihier KMZ

Le type MIME à utiliser pour un fichier KMZ est :

  application/vnd.google-earth.kmz

Avec PHP il faut utiliser le header suivant :

  header('Content-type: application/vnd.google-earth.kmz');

Pour Apache, ajoutez les lignes suivantes au fichier httpd.conf :

  AddType application/vnd.google-earth.kmz .kmz

Déclaration et encodage

Le corps de la réponse doit contenir des données KML valides, y compris la déclaration XML :

  <?xml version="1.0" encoding="UTF-8"?>

Si le serveur retourne un fichier KML invalide, un message d'erreur sera affiché.

Attention à l'encodage de votre fichier KML.
Soyez cohérent entre l'encodage déclaré et l'encodage des données contenues dans votre fichier KML.

Exemple :

Vous déclarez, en entête un encodage au format UTF-8, et vos données sont au format ISO-8859-1. Résultat, les caractères accentués, par exemple, sont illisibles.

Certains navigateurs, comme Firefox, vont néanmoins "interpréter" correctement votre fichier KML et ainsi permettre l'affichage des données dans une carte Google Maps, alors que d'autres, beaucoup moins tolérants comme Internet Explorer, rejeteront votre fichier KML et aucune donnée ne s'affichera sur votre carte.

A lire :