1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| /*
Fonction appellée au chargement de la page index.php
Parametres: les coordonnées du point de centrage de la carte et le niveau de zoom
*/
function load(lat,lng,zoom)
{
//Définition du point central de la carte
var coord_centre = new google.maps.LatLng(lat, lng);
//Définitions des options de la carte
var option = {
zoom: zoom,
center: coord_centre,
scaleControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
//Création de la carte dans le div correspondant et avec les options précédentes
map = new google.maps.Map(document.getElementById("div_map"), option);
//Instanciation d'un objet Geocoder pour conversion des adresses postales en coordonnées GPS
geocoder = new google.maps.Geocoder();
//Lecture du fichier xml et création des marqueurs
downloadUrl("markers.xml", function(data) {
var markers = data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++)
{
CreerMarker(markers[i].getAttribute("nom"),markers[i].getAttribute("adresse"));
}
});
}
/*
Fonction de création des marqueurs
Parametres: l'adresse postale et le nom à afficher
*/
function CreerMarker(nom, adresse)
{
geocoder.geocode( { 'address': adresse}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
//Si adresse trouvée, création du marqueur
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: nom
});
//Ajout de la fenetre d'informations au marqueur
var contenu = nom+"<br />"+adresse;
var infowindow = new google.maps.InfoWindow({
content: contenu
});
//Création du listener du clic de souris sur le marqueur
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
else
{
alert("Géolocalisation échouée a cause de: " + status);
}
});
} |
Partager