Comment créer et ajouter un marqueur personnalisé sur une carte Google Maps
Ce tutoriel est basé sur le code de l'exemple intitulé : Comment créer et afficher un marqueur marker sur carte Google Maps ?.
function initialisation(){
var optionsCarte = {
zoom: 8,
center: new google.maps.LatLng(47.389982, 0.688877)
};
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
var optionsMarqueur = {
position: maCarte.getCenter(),
map: maCarte
};
var marqueur = new google.maps.Marker(optionsMarqueur);
}
Nous allons compléter ce code afin de remplacer le marqueur par défaut, par un marqueur personnalisé.
Apparence et caractéristiques de l'image du marqueur personnalisé
- URL de l'image : http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png,
- dimension de l'image : 150 x 120 pixels,
- origine : 0 x 0,
- point d'ancrage : 28 x 120.
Caractéristiques du marqueur personnalisé
Le marqueur personnalisé sera :
- ancré au centre de la carte :
centreCarte
, - affiché sur la carte nommée :
maCarte
.
Attention :
Depuis la version 3.14 de l'API Google Maps l'ombre du marqueur a été purement et simplement supprimée.
Depuis la version 3.14 de l'API Google Maps l'ombre du marqueur a été purement et simplement supprimée.
Carte avec un marqueur marker personnalisé
Paramètres de l'image du marqueur
Création d'un objet littéral imageMarqueur
de type Icon
pour définir les caractéristiques de l'image, représentant le marqueur, à l'aide des propriétés suivantes :
url
: URL de l'image représentant le marqueur {string},size
: Dimension de l'image {Size},anchor
: Point d'ancrage de l'image sur la carte {Point},
var imageMarqueur = {
url: "http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png",
size: new google.maps.Size(150, 120),
anchor: new google.maps.Point(28, 120)
};
Création du marqueur marker personnalisé
Il ne reste plus qu'à associer notre objet littéral imageMarqueur
à la propriété icon
de l'objet littéral optionsMarqueur
, de type MarkerOptions
, de notre marqueur lors de sa création.
var imageMarqueur = {
url: "http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png",
size: new google.maps.Size(150, 120),
anchor: new google.maps.Point(28, 120)
};
var optionsMarqueur = {
map: maCarte,
position: centreCarte,
icon: imageMarqueur
}
var marqueur = new google.maps.Marker(optionsMarqueur);
Autre écritures équivalentes :
- Intégrer les options directement lors de la création du marker
var marqueur = new google.maps.Marker({ map: maCarte, position: centreCarte, icon: { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) } });
- Utiliser la méthode
setOptions
de la classeMarker
ou encore :var optionsMarqueur = { map: maCarte, position: centreCarte, icon: { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) } }; var marqueur = new google.maps.Marker(); marqueur.setOptions(optionsMarqueur);
var marqueur = new google.maps.Marker(); marqueur.setOptions({ map: maCarte, position: centreCarte, icon: { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) } });
- Utiliser les méthodes
setMap
,setPosition
,setIcon
de la classeMarker
ou encore :var imageMarqueur = { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) }; var marqueur = new google.maps.Marker(); marqueur.setMap( maCarte ), marqueur.setPosition( centreCarte ); marqueur.setIcon( imageMarqueur );
var marqueur = new google.maps.Marker(); marqueur.setMap( maCarte ), marqueur.setPosition( centreCarte ); marqueur.setIcon({ url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) });
- Utiliser la méthode
set
de la classeMVCObject
(la classeMarker
héritant de la classeMVCObject
)
ou encore :var imageMarqueur = { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) }; var marqueur = new google.maps.Marker(); marqueur.set( "map", maCarte ), marqueur.set( "position", centreCarte ); marqueur.set( "icon", imageMarqueur );
var marqueur = new google.maps.Marker(); marqueur.set( "map", maCarte ), marqueur.set( "position", centreCarte ); marqueur.set( "icon", { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) });
- Utiliser la méthode
setValues
de la classeMVCObject
(la classeMarker
héritant de la classeMVCObject
)
ou encore :var imageMarqueur = { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) }; var marqueur = new google.maps.Marker(); marqueur.setValues({ "map": maCarte, "position": centreCarte, "icon": imageMarqueur });
var marqueur = new google.maps.Marker(); marqueur.setValues({ "map": maCarte, "position": centreCarte, "icon": { url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png, size: new google.maps.Size(150, 120), anchor: new google.maps.Point(28, 120) } });
Code JavaScript pour afficher un marqueur personnalisé sur une carte Google Maps
Il ne nous reste plus qu'a ajouter le code permettant de créer le marqueur
personnalisé au code de la carte maCarte
.
function initialisation(){
var optionsCarte = {
zoom: 8,
center: new google.maps.LatLng(47.389982, 0.688877)
};
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
var imageMarqueur = {
url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png,
size: new google.maps.Size(150, 120),
anchor: new google.maps.Point(28, 120)
};
var optionsMarqueur = {
position: maCarte.getCenter(),
map: maCarte,
icon: imageMarqueur
}
var marqueur = new google.maps.Marker(optionsMarqueur);
}
Code final pour créer un marqueur marker personnalisé
Retrouvez ci-dessous le code complet afin de créer et ajouter un marqueur personnalisé sur une carte Google Maps.
<!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: 8,
center: new google.maps.LatLng(47.389982, 0.688877),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
var imageMarqueur = {
url: http://static.www.touraineverte.fr/googlemapsapiversion3/4/image.png,
size: new google.maps.Size(150, 120),
anchor: new google.maps.Point(28, 120)
};
var optionsMarqueur = {
position: maCarte.getCenter(),
map: maCarte,
icon: imageMarqueur
}
var marqueur = new google.maps.Marker(optionsMarqueur);
}
</script>
<script async defer src="http://maps.googleapis.com/maps/api/js?key=InsérezVotreCleAPIGoogleMapsIci&callback=initialisation"></script>
</body>
</html>