Présentation
Ce tutoriel explique comment afficher les informations d'un fichier KML dans une carte Google et une barre latérale. Pour en savoir plus sur l'utilisation de fichiers KML dans les cartes, consultez le guide sur les calques KML. Cliquez sur un repère sur la carte ci-dessous pour afficher les données dans la barre latérale.
La section ci-dessous affiche l'intégralité du code dont vous avez besoin pour créer la carte et la barre latérale.
var map; var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml'; function initMap() { map = new google.maps.Map(document.getElementById('map'), { center: new google.maps.LatLng(-19.257753, 146.823688), zoom: 2, mapTypeId: 'terrain' }); var kmlLayer = new google.maps.KmlLayer(src, { suppressInfoWindows: true, preserveViewport: false, map: map }); kmlLayer.addListener('click', function(event) { var content = event.featureData.infoWindowHtml; var testimonial = document.getElementById('capture'); testimonial.innerHTML = content; }); }
<div id="map"></div> <div id="capture"></div>
html, body { height: 370px; padding: 0; margin: 0; } #map { height: 360px; width: 300px; overflow: hidden; float: left; border: thin solid #333; } #capture { height: 360px; width: 480px; overflow: hidden; float: left; background-color: #ECECFB; border: thin solid #333; border-left: none; }
<!-- Replace the value of the key parameter with your own API key. --> <script async src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"> </script>
Essayez par vous-même
Vous pouvez tester ce code dans JSFiddle en cliquant sur l'icône <>
dans l'angle supérieur droit de la fenêtre de code.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>KML Click Capture Sample</title>
<style>
html, body {
height: 370px;
padding: 0;
margin: 0;
}
#map {
height: 360px;
width: 300px;
overflow: hidden;
float: left;
border: thin solid #333;
}
#capture {
height: 360px;
width: 480px;
overflow: hidden;
float: left;
background-color: #ECECFB;
border: thin solid #333;
border-left: none;
}
</style>
</head>
<body>
<div id="map"></div>
<div id="capture"></div>
<script>
var map;
var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml';
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(-19.257753, 146.823688),
zoom: 2,
mapTypeId: 'terrain'
});
var kmlLayer = new google.maps.KmlLayer(src, {
suppressInfoWindows: true,
preserveViewport: false,
map: map
});
kmlLayer.addListener('click', function(event) {
var content = event.featureData.infoWindowHtml;
var testimonial = document.getElementById('capture');
testimonial.innerHTML = content;
});
}
</script>
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>
Premiers pas
Voici les étapes nécessaires à la création de la carte et de la barre latérale pour ce tutoriel :
Configurer le fichier KML à importer
Votre fichier KML doit être conforme à la norme KML. Pour en savoir plus sur cette norme, consultez le site Web de l'Open Geospatial Consortium. La documentation KML de Google décrit également le langage. Il s'agit d'une documentation de référence et conceptuelle dédiée aux développeurs.
Si vous êtes simplement là pour apprendre et ne disposez pas d'un fichier KML, vous avez plusieurs possibilités :
Utilisez le fichier KML suivant pour ce tutoriel :
https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml
Trouvez un fichier KML sur le Web. Vous pouvez utiliser l'opérateur de recherche
filetype
de Google.Remplacez
velodromes
par un terme de recherche ou omettez-le pour trouver tous les fichiers KML.
Si vous créez votre propre fichier, voici les prérequis pour utiliser le code de cet exemple :
- Votre fichier doit être publiquement hébergé sur Internet. Il s'agit d'une exigence pour toutes les applications qui chargent un KML dans un
KMLLayer
, afin que les serveurs de Google puissent trouver et récupérer le contenu, et l'afficher sur la carte. - Le fichier ne doit pas se trouver sur une page protégée par mot de passe.
- Vos éléments cartographiques doivent inclure du contenu pour la fenêtre d'informations. Vous pouvez inclure ce contenu dans un élément
description
ou l'inclure à l'aide d'un élémentExtendedData
et du remplacement d'entité (voir ci-dessous pour en savoir plus). Les deux sont accessibles en tant que propriétéinfoWindowHtml
de l'élément cartographique.
Éléments ExtendedData
Le fichier KML de ce tutoriel inclut des informations sur l'élément cartographique dans un élément ExtendedData
. Pour inclure ces informations dans la description de l'élément cartographique, utilisez le remplacement d'entité, qui est essentiellement une variable dans le tag BalloonStyle
.
Le tableau ci-dessous décrit le code pour cette section.
Code et description | |
---|---|
|
Le fichier KML comporte un seul élément Style qui est appliqué à tous les repères. Cet élément Style attribue une valeur #[video] à l'élément de texte de BalloonStyle .Le format $[x] indique à l'analyseur KML de rechercher un élément Data nommé video et de l'utiliser comme texte d'infobulle. |
|
Chaque Placemark contient un élément ExtendedData , qui contient l'élément Data .
Notez que chaque Placemark comporte un seul élément Data avec un attribut "name" correspondant à video .Pour les besoins de ce tutoriel, le fichier utilise la vidéo intégrée YouTube comme valeur de texte d'infobulle pour chaque repère. |
Pour en savoir plus sur le remplacement d'entité, consultez le chapitre Ajouter des données personnalisées de la documentation KML.
Afficher le KMLLayer
Initialiser la carte
Ce tableau présente le code de cette section.
Code et description | |
---|---|
|
Pour afficher les données KML sur une carte, vous devez d'abord la créer. Ce code crée un objet map Google, lui indique où centrer et zoomer, et l'associe au div .Pour en savoir plus sur les bases de la création d'une carte Google, consultez le tutoriel Ajouter une carte Google à votre site Web. |
Créer le KMLLayer
Ce tableau décrit le code qui crée un KMLLayer.
Code et description | |
---|---|
|
Crée un objet KMLLayer pour afficher votre KML. |
|
Le constructeur KMLLayer définit l'URL de votre fichier KML. Il définit également les propriétés de l'objet KMLLayer qui :
|
Afficher des données dans la barre latérale
Cette section décrit les paramètres qui permettent d'afficher le contenu de la fenêtre d'informations dans la barre latérale lorsque vous cliquez sur un élément cartographique sur la carte. Voici les étapes à suivre :
- Écouter un événement de clic sur n'importe quel élément cartographique du KMLLayer
- Récupérer les données de l'élément cartographique sur lequel l'utilisateur a cliqué
- Écrire ces données dans la barre latérale
Ajouter un écouteur d'événements
Google Maps fournit une fonction permettant d'écouter les événements utilisateur sur la carte (tels que les clics ou les appuis sur des touches du clavier) et d'y répondre. Cette fonction ajoute un écouteur pour ces événements de click
.
Le tableau ci-dessous décrit le code pour cette section.
Code et description | |
---|---|
|
L'écouteur d'événements kmlLayer.addListener se concentre sur ce qui suit :
|
Écrire les données d'un élément cartographique KML dans la barre latérale
À cette étape du tutoriel, vous avez capturé des événements de clic sur les éléments cartographiques du calque. Vous pouvez maintenant configurer l'application pour qu'elle écrive les données de l'élément cartographique et le contenu de la fenêtre d'informations dans la barre latérale.
Le tableau ci-dessous décrit le code pour cette section.
Code et description | |
---|---|
|
Écrit le contenu de la fenêtre d'informations dans une variable. |
|
Identifie le div approprié et écrit le contenu de l'élément cartographique à la place du HTML qu'il contient.
|
|
Ces lignes de code deviennent la fonction dans le constructeur addListener .
|
Désormais, chaque fois que vous cliquez sur un élément cartographique KML de la carte, la barre latérale est actualisée pour afficher le contenu de la fenêtre d'informations.
En savoir plus
En savoir plus sur l'utilisation des fichiers KML