Un d
Format de fichier divers KML
Les fichiers KML sont stockés dans Format XML et développé à l'origine pour le logiciel de cartographie Keyhole. En 2004 Google a acheté Keyhole Inc., c'est pourquoi les fichiers KML sont désormais largement utilisés par les services de cartographie de Google - Google Maps et Google Earth.
Informations techniques sur les fichiers KML
Les fichiers KML contiennent des informations stockées au format XML. Ces informations comprennent à la fois des images et des données plus simples telles que des lignes, des polygones et des points. Ces fichiers sont utilisés pour stocker des informations sur un emplacement spécifique sur une carte. Un fichier KML permet à l'utilisateur non seulement de marquer un emplacement sur une carte, mais également d'ajouter du contenu (au format HTML), une texture et une vue sous différents angles. Pour ouvrir des fichiers KML dans Google Maps, tout ce dont vous avez besoin est le fichier KML lui-même, hébergé sur Internet. En utilisant un lien d'extension séparé dans la barre de recherche Google Maps, il sera ouvert.
Informations supplémentaires sur le format KML
Extension de fichier | .kml |
Catégorie de fichier | |
Exemple de fichier | (2.05 Kio) |
Programmes associés | Mélangeur (Windows, Mac et Linux) Cartographe mondial Blue Marble Geographics (Windows) ESRI ArcGIS for Desktop (Windows) Google Earth (Windows, Mac et Linux) Google Maps (Web) Merkaartor (Windows, Mac et Linux) Trou de serrure PRO (Windows et Mac) |
KML est un format de fichier utilisé pour afficher des données géographiques dans un navigateur Earth tel que Google Earth. KML utilise une structure basée sur des balises avec des éléments et des attributs imbriqués et est basé sur la norme XML. Toutes les balises sont sensibles à la casse et doivent apparaître exactement telles qu'elles sont répertoriées dans la référence KML . La référence indique quelles balises sont facultatives. Dans un élément donné, les balises doivent apparaître dans l'ordre indiqué dans la référence. Si vous débutez avec KML, explorez ce document et les exemples de fichiers qui l'accompagnent ( ÉchantillonsDansTerre) pour découvrir la structure de base d'un fichier KML et les balises les plus couramment utilisées. La première section décrit les fonctionnalités qui peuvent être créées avec l'interface utilisateur de Google Earth. Ces éléments incluent des repères, des descriptions, des superpositions au sol, des chemins et des polygones. La deuxième section décrit les fonctionnalités qui nécessitent la création de KML avec un éditeur de texte. Lorsqu'un fichier texte est enregistré avec un .kml ou .kmz extension, les navigateurs Earth savent comment l'afficher. |
pointe: Pour voir le "code" KML d'une entité dans Google Earth, vous pouvez simplement cliquer avec le bouton droit sur l'entité dans la visionneuse 3D de Google Earth et sélectionnez copie. Collez ensuite le contenu du presse-papiers dans n'importe quel éditeur de texte. L'élément visuel affiché dans Google Earth est converti en son équivalent texte KML. Assurez-vous d'expérimenter cette fonctionnalité.
Pour une discussion sur l'utilisation de certaines fonctionnalités clés de KML, consultez le Guide du développeur .
Table des matières
Documents KML de base
Les types de documents KML les plus simples sont ceux qui peuvent être créés directement dans Google Earth, c'est-à-dire que vous n'avez pas besoin de modifier ou de créer de KML dans un éditeur de texte. Les repères, les superpositions au sol, les chemins et les polygones peuvent tous être créés directement. dans Google Earth.
Repères
Un repère est l'une des fonctionnalités les plus couramment utilisées dans Google Earth. Il marque une position sur la surface de la Terre, en utilisant une punaise jaune comme icône. Le repère le plus simple ne comprend qu'un
Par exemple, activez le dossier "Positionnement absolu : en haut à gauche" dans le fichier d'échantillons KML et vous verrez une superposition d'écran en haut à gauche de la fenêtre d'affichage. Il a été créé avec le code KML suivant :
Le positionnement est contrôlé en mappant un point dans l'image spécifié par
Consultez les autres exemples du dossier pour voir comment il est possible d'obtenir d'autres positions fixes et de créer des images qui s'adaptent dynamiquement à la taille de l'écran. (Notez que xunités et unités peut également être spécifié en tant que "pixels" pour un contrôle de précision.) Pour plus de détails, consultez la référence KML 2.2 .
Liens réseau
Un lien réseau contient un élément avec un
La
- Un fichier image utilisé par les icônes dans les styles d'icônes, les superpositions au sol et les superpositions d'écran
- Un fichier de modèle utilisé dans le
élément - Un fichier KML ou KMZ chargé par un lien réseau
Le fichier spécifié peut être soit un fichier local, soit un fichier sur un serveur distant. Dans leur forme la plus simple, les liens réseau sont un moyen utile de diviser un gros fichier KML en fichiers plus petits et plus faciles à gérer sur le même ordinateur.
Jusqu'à présent, tous nos exemples nécessitaient que le code KML soit livré à Google Earth à partir de la machine locale. Les liens réseau vous permettent de diffuser du contenu à distance et sont couramment utilisés pour distribuer des données à un grand nombre d'utilisateurs. De cette manière, si les données doivent être modifiées, elles ne doivent être modifiées qu'à l'emplacement source et tous les utilisateurs reçoivent automatiquement les données mises à jour.
Script CGI pour KML
En plus de pointer vers des fichiers contenant des données statiques, un lien réseau
Deux éléments sont nécessaires pour diffuser du KML via un CGI réseau :
Lorsqu'un appel est passé du client (Google Earth) au serveur, le serveur doit (1) renvoyer un code de réponse HTTP 200 et (2) définir le type de contenu de la réponse sur text/plain ou application/vnd.google -earth.kml+xml.
La réponse doit être un KML valide. Pour les applications complexes, une bonne gestion des erreurs est très importante.
pointe: Un moyen simple de gérer les erreurs consiste à analyser l"erreur du serveur comme le texte d"un nom de dossier. Par exemple, vous pouvez demander au serveur de renvoyer
Les exemples suivants utilisent Python, mais ils sont également valables dans tout autre langage de script.
Génération d'un repère aléatoire
Le script Python suivant génère des valeurs entières aléatoires pour latitude et longueur puis insère ces valeurs dans le
#!/usr/bin/python import random latitude = random.randrange(-90, 90) longitude = random.randrange(-180, 180) kml = ("\n" "
Voici un exemple de fichier KML contenant un lien réseau qui charge ce script Python :
repère sur chaque appel
Requêtes d'actualisation basées sur la vue
Un lien réseau standard est un lien unidirectionnel : les données circulent uniquement du serveur vers Google Earth. L'actualisation basée sur la vue permet une communication bidirectionnelle. Lorsque l'actualisation basée sur la vue est active, Google Earth renvoie les coordonnées de la vue au serveur à une heure spécifiée. Cela peut être chaque n secondes, minutes ou heures, ou une fois qu'un certain laps de temps s'est écoulé depuis que la vue a cessé de bouger. Voir
Les coordonnées sont renvoyées au serveur au moyen d'un HTTP GET qui ajoute les coordonnées comme suit (il s'agit des informations de la boîte englobante par défaut) :
GET /path/to/sever/script/query?BBOX= HTTP/1.1
Si la demande a été effectuée alors que l'utilisateur regardait San Francisco, les coordonnées pourraient ressembler à ceci :
GET /path/to/server/script/query?BBOX=-122.497790,37.730385,-122.380087,37.812331 HTTP/1.1
Cette fonctionnalité peut être utilisée pour certaines applications très créatives, mais pour vous aider à démarrer, un exemple simple est présenté ci-dessous.
Suivi d'un point directement sous votre vue
Le script Python côté serveur suivant analyse le message de retour envoyé par Google Earth et répond avec un repère au centre de l'écran. Chaque fois que le lien réseau est actualisé, un nouveau repère est généré.
#!/usr/bin/python import cgi url = cgi.FieldStorage() bbox = url["BBOX"].value bbox = bbox.split(",") ouest = float(bbox) sud = float(bbox) est = float(bbox) nord = float(bbox) center_lng = ((est - ouest) / 2) + ouest center_lat = ((nord - sud) / 2) + sud kml = ("\n" "
Et voici le KML pour le Network Link qui charge le script Python :
au centre de votre écran et renvoie un repère.
Le principe illustré dans cet exemple peut être utilisé pour certaines applications très complexes. Par exemple, si vous disposez d'une base de données d'informations géographiques, vous pouvez extraire les coordonnées du spectateur, faire un appel à la base de données pour les données spécifiques à la vue, et la renvoyer à Google Earth en tant que KML.
3 types MIME KML
Lorsqu'il répond à une requête de Google Earth (ou de n'importe quel navigateur Earth), un serveur KML doit suivre un certain ensemble de règles afin que Google Earth puisse interpréter correctement ses réponses.
En cas de succès, le serveur doit renvoyer un code de réponse HTTP 200 et définir le type de contenu de la réponse sur un type MIME approprié, comme décrit ici.
Google Earth lit les fichiers KML et KMZ. Le type MIME pour les fichiers KML est
- application/vnd.google-earth.kml+xml
Le type MIME pour les fichiers KMZ est
- application/vnd.google-earth.kmz
Pour Apache, ajoutez ces lignes au httpd.conf dossier:
- Application AddType/vnd.google-earth.kml+xml .kml
- Application AddType/vnd.google-earth.kmz .kmz
Consultez la documentation de Microsoft pour plus de détails sur la configuration des types MIME sur IIS de Microsoft.
Le corps de la réponse doit contenir des données KML valides, y compris la déclaration XML (). Si le serveur renvoie un KML non valide, le Network Link s'arrêtera, se désactivera et affichera un message d'erreur.