var map; var mgr; var icons = {}; var allmarkers = []; function loadGoogleMap(choixCarte) { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(46.33004,-72.556287), 15); var extLargeMapControl = new ExtLargeMapControl({type : "small", zoomInBtnTitle : "Rapprocher", zoomOutBtnTitle : "Éloigner"}); map.addControl(extLargeMapControl); window.setTimeout("setupNousJoindre("+choixCarte+")", 0); } } function getIcon(images) { var icon = null; if (images) { if (icons[images[0]]) { icon = icons[images[0]]; } else { icon = new GIcon(G_DEFAULT_ICON); icon.image = "/google_maps/icones_carte/" + images[0] + ".png"; var size = iconData[images[0]]; var hauteur = size.height - 1; var largeur = size.width - 1; icon.iconSize = new GSize(size.width, size.height); //icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1); icon.iconAnchor = new GPoint(30, 40); icon.infoWindowAnchor = new GPoint(12, 3); icon.shadow = null; icon.imageMap = [0,hauteur, largeur,hauteur, largeur,0, 0,0]; //Dans Firefox, pour que l'icone soit cliquable en entier //size = iconData[images[1]]; //icon.shadowSize = new GSize(size.width, size.height); icons[images[0]] = icon; } } return icon; } function setupNousJoindre(choixCarte) { mgr = new MarkerManager(map, {trackMarkers:false}); allmarkers.length = 0; for (var i in choixCarte) { var layer = choixCarte[i]; var markers = []; for (var j in layer["places"]) { var place = layer["places"][j]; var icon = getIcon(place["icon"]); var title = place["name"]; var infoBulle = place["info"]; var posn = new GLatLng(place["posn"][0], place["posn"][1]); var marker = createMarker(posn,title,icon,infoBulle); markers.push(marker); allmarkers.push(marker); } mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]); } mgr.refresh(); map.openInfoWindowHtml(posn, infoBulle, {pixelOffset: new GSize(-12, -37), noCloseOnClick:true}); //map.openInfoWindowHtml(map.getCenter(),infoBulle, {pixelOffset: new GSize(-2, -16), noCloseOnClick:true}); } function createMarker(posn, title, icon, infoBulle) { var marker = new GMarker(posn, {title: title, icon: icon, draggable:false }); GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(infoBulle, {noCloseOnClick:true}); }); return marker; }