Comment activer ou désactiver le click sur les icônes de carte ou POI ( Point Of Interest ) ?
Ce tutoriel est basé sur le code de l'exemple intitulé : Comment créer une carte avec l'API Google Maps Version 3 ?.
function initialisation(){
var optionsCarte = {
zoom: 8,
center: { lat: 47.389982, lng: 0.688877 }
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
Nous allons compléter ce code afin d'autoriser ou interdire le click sur les icônes de carte ou points d'intérêt (POI).
Les POI sont les petits pictogrammes que apercevez sur les cartes Google Maps et qui permettent de localiser les magasins, monuments, lieux touristiques, etc.
Lorsque vous cliquez sur un pictogramme, une info-bulle s'ouvre pour vous indiquer l'adresse postale et vous proposer un lien vers une carte Google Maps.
L'API Google Maps vous permet d'activer ou désactiver le click sur ces pictogrammes.
Le niveau de zoom doit être suffisamment élevé pour les pictogrammes des POI soient visibles sur la carte.
Les pictogrammes apparaissent à partir d'un niveau de zoom égal à 13.
Carte autorisant ou interdisant le click sur les POI
click sur les pictogrammes représentant des points d'intérêt ou POI.click sur les pictogrammes de POI est activé. Cliquez sur un pictogramme pour ouvrir son info-bulle.
Propriété clickableIcons
Lors que la propriété clickableIcons est activée, alors tout click sur un pictogramme de POI déclenchera l'ouverture de son info-bulle.
.
La propriété clickableIcons de l'objet MapOptions permet d'autoriser ou d'interdire le click sur les pictogrammes représentant des points d'intérêt ou POI.
La propriété clickableIcons est un booléen. Elle ne peut prendre que deux valeurs : true ou false.
Autoriser le click sur les points d'intérêt ou POI - clickableIcons: true
Pour activer le click sur les POI, il suffit de définir la propriété clickableIcons sur true dans les options optionsCarte servant à la construction de la carte.
Attention : Le niveau de zoom devant être suffisamment élevé pour que les pictogrammes des POI soient visibles sur la carte, nous passons le niveau de zoom de 8 à 18.
function initialisation(){
var optionsCarte = {
zoom: 18,
center: { lat: 47.389982, lng: 0.688877 },
clickableIcons: true
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
Autres écritures équivalentes :
- utilisation de la méthode
setOptionsde la classeMapfunction initialisation(){ var optionsCarte = { zoom: 18, center: { lat: 47.389982, lng: 0.688877 }, clickableIcons: true } var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.setOptions( optionsCarte ); } - La classe
Maphéritant de la classe la classeMVCObjectil est possible d'utiliser la méthodesetfunction initialisation(){ var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.set( "center", new google.maps.LatLng( 47.389982, 0.688877 ) ); maCarte.set( "zoom", 18 ); maCarte.set( "clickableIcons", true ); } - La classe
Maphéritant de la classe la classeMVCObjectil est possible d'utiliser la méthodesetValuesfunction initialisation(){ var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.setValues( { center : { lat: 47.389982, lng: 0.688877 }, zoom: 18, clickableIcons: true } ); }
Interdire le click sur les points d'intérêt ou POI - clickableIcons: false
Pour désactiver le click sur les POI, il suffit de définir la propriété clickableIcons sur false dans les options optionsCarte servant à la construction de la carte.
function initialisation(){
var optionsCarte = {
zoom: 18,
center: { lat: 47.389982, lng: 0.688877 },
clickableIcons: false
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
Autres écritures équivalentes :
- utilisation de la méthode
setOptionsde la classeMapfunction initialisation(){ var optionsCarte = { zoom: 18, center: { lat: 47.389982, lng: 0.688877 }, clickableIcons: false } var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.setOptions( optionsCarte ); } - La classe
Maphéritant de la classe la classeMVCObjectil est possible d'utiliser la méthodesetfunction initialisation(){ var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.set( "center", new google.maps.LatLng( 47.389982, 0.688877 ) ); maCarte.set( "zoom", 18 ); maCarte.set( "clickableIcons", false ); } - La classe
Maphéritant de la classe la classeMVCObjectil est possible d'utiliser la méthodesetValuesfunction initialisation(){ var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte")); maCarte.setValues( { center : { lat: 47.389982, lng: 0.688877 }, zoom: 18, clickableIcons: false } ); }
Comportement par défaut des pictogrammes de POI face à l'événement click
Par défaut, l'événement click est autorisé sur les points d'intérêts ou POI.
Par conséquent, définir la propriété clickableIcons sur true dans optionsCarte :
function initialisation(){
var optionsCarte = {
zoom: 18,
center: { lat: 47.389982, lng: 0.688877 },
clickableIcons: true
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
ou omettre la propriété clickableIcons dans optionsCarte, autorisera systématiquement le click sur les pictogrammes géolocalisant les points d'intérêt ou POI :
function initialisation(){
var optionsCarte = {
zoom: 18,
center: { lat: 47.389982, lng: 0.688877 }
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
Exemple de code avec la propriété clickableIcons
Dans l'exemple de code ci-dessous le click sur les pictogrammes des POI est désactivé.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta charset="UTF-8" />
<title>Titre de votre page</title>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0
}
#EmplacementDeMaCarte {
height: 100%
}
</style>
</head>
<body>
<div id="EmplacementDeMaCarte"></div>
<noscript>
<p>Attention : </p>
<p>Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
<p>Or, il semble que JavaScript est désactivé ou qu'il ne soit pas supporté par votre navigateur.</p>
<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
</noscript>
<script>
function initialisation(){
var optionsCarte = {
zoom: 18,
center: { lat: 47.389982, lng: 0.688877 },
clickableIcons: false
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
</script>
<script async defer src="http://maps.googleapis.com/maps/api/js?key=InsérezVotreCléApiGoogleMapsIci&callback=initialisation"></script>
</body>
</html>