Pages: 1
- Sujet précédent - [API Google Maps] Ajouter InfoWindows sur couche de Polygon - Sujet suivant
#1 Mon 09 November 2015 14:45
- Xavier Julian
- Participant assidu
- Lieu: Orange
- Date d'inscription: 19 Jan 2015
- Messages: 218
[API Google Maps] Ajouter InfoWindows sur couche de Polygon
Bonjour à tous,
J'ai commencé un début de code pour créer une carte avec des polygones via l'API de Google Maps.
Jusqu'ici tout va bien, je me débrouille avec la documentation fournie par Google :
https://developers.google.com/maps/docu … ipt/shapes
Je voudrais qu'une infobulle apparaisse quand on clique sur le polygone.
Après plusieurs tentatives de rendre tout mon polygone cliquable, je me resous à faire apparaitre une infoWindow au centroïde de mes polygones, mais ça ne marche toujours pas.
Voilà un extrait du code avec un seul polygone : des idées ?
Code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
html, body { height: 100%; margin: 0; padding: 0; }
#map { height: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkrMsjLURCPzjNxAdELrACsxRayqLjaxc&callback=initMap">
</script> //clé personnelle fournie par Google
<script type="text/javascript">
function initMap()
{
var mapOptions = {
center: {lat: 44.6, lng: 4.8},
zoom: 8,
mapTypeId: google.maps.MapTypeId.TERRAIN //attention pas de virgule à la dernière propriété
}; //option de la carte : centroide, niveau de zoom, type de fond)
var map = new google.maps.Map(document.getElementById('map'), mapOptions
); //initialisation du fond de carte google et renvoi aux options ci-dessus. Ma carte s'appelle désormais 'map'
var TDCDPCoords = [
{lat:44.1357727338, lng:4.80827009788},
{lat:44.1194285955, lng:4.8362333205},
.../...
{lat:44.1323322384, lng:4.80547377562},
{lat:44.1357727338, lng:4.80827009788}
]; //sommets du polygone
var TDCDP = new google.maps.Polygon({
paths: TDCDPCoords, //renvoi vers les coordonnées du polygone (sommets)
strokeColor: 'B378D3', //couleur des bords du polygone
strokeOpacity: 0.8, //opacité des bords du polygone
strokeWeight: 1, //épaisseur des bords du polygone
fillColor: 'B378D3', //couleur de remplissage du polygone
fillOpacity: 0.35, //opacité de remplissage du polygone
name:'TERRASSE DE CHATEAUNEUF-DU-PAPE' //nom du polygone
});
TDCDP.setMap(map); //ceci permet au polygone TDCDP d'être affiché sur la carte (nommée 'map')
google.maps.event.addListener(TDCDP, 'click', function() {
infoWindow.open(map);
infoWindows.setPosition (44.248654, 4.9825);
infoWindow.setContent('TERRASSE DE CHATEAUNEUF-DU-PAPE');
}); //indique que le polygone réagit au clic en ouvrant une infobulle, fixe sa position et son contenu
}
</script>
</body>
</html>Merci par avance.
Hors ligne
#2 Thu 12 November 2015 16:17
- Xavier Julian
- Participant assidu
- Lieu: Orange
- Date d'inscription: 19 Jan 2015
- Messages: 218
Re: [API Google Maps] Ajouter InfoWindows sur couche de Polygon
Pour ceux que ça intéresse, j'ai trouvé la solution à l'aide d'un ami.
Il faut appeler une variable infoWindows en amont des polygones comme ceci :
Code:
var infoWindow = new google.maps.InfoWindow(); //initialisation de la fonction infobulle
var map = new google.maps.Map(document.getElementById('map'), mapOptions); //initialisation du fond de carte google et renvoi aux optionspuis configurer chacune des infobulles des différents polygones comme cela :
Code:
google.maps.event.addListener(mon_polygone, 'click', function(e) { //ajout d'un évènement qui réagit au clic de la souris sur le polygone mon_polygone
infoWindow.open(map);
infoWindow.setPosition (e.latLng); //l'infobulle se met à jour là où on clique
infoWindow.setContent('blablabla');//contenu de l'infobulle
};Dernière modification par Xavier Julian (Thu 12 November 2015 16:23)
Hors ligne
Pages: 1
- Sujet précédent - [API Google Maps] Ajouter InfoWindows sur couche de Polygon - Sujet suivant


