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 62
| var map;
var initialize = function() {
map = new google.maps.Map(document.getElementById('mapSection'), {
center: {lat: 45.993, lng: 2.281},
zoom: 5,
mapTypeId: google.maps.MapTypeId.HYBRID
});
var infoBulle = new google.maps.InfoWindow();
setMarkers(map, infoBulle);
}
// Fonction qui determine la position des Markers et le contenu de l'infobulle associée
function setMarkers(map, infoBulle) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'data/randos.xml', true);
xhr.onload = function() {
var doc = xhr.responseXML;
var element = doc.getElementsByTagName('rando:depart'); // On recupère toutes les coordonnées
var title = doc.getElementsByTagName('dc:title'); // On recupère tout les titres
for (var i = 1; i <= element.length; i++) {
var pos = element[i-1].getElementsByTagName('gpx:trkpt');
var lat = pos[0].getAttribute("gpx:lat"); // On récupère la latitude
var lon = pos[0].getAttribute("gpx:lon"); // Et la longitude
var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lon));
var content = '<h3>'+ title[i].firstChild.data +'</h3>' +
'<p>' + doc.getElementsByTagName('dc:description')[i].firstChild.data + '</p>' +
'<a href="#" onclick="getInfos()" id="'+ i +'">Voir les détails</a>';
var marker = createMarker(point, content, infoBulle);
};
};
xhr.send(null);
};
// Fonction qui créé les Markers et les infoBulles associées
function createMarker(point, content, infoBulle) {
var marker = new google.maps.Marker({
position: point,
map: map,
draggable: false,
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(marker, 'click', function() {
infoBulle.setContent(content);
infoBulle.open(map, marker);
});
};
function getInfos() {
document.getElementById('details').innerHTML += this.id;
}
window.onload = initialize; |
Partager