var map; var mgr; var icons = {}; var positionDefaut; var zoomLevelDefaut = 4; var ib; function loadGoogleMap() { var latitude = 51.00776876193478; var longitude = -90.712890625; positionDefaut = new google.maps.LatLng(latitude, longitude); var myOptions = { zoom: 4, center: positionDefaut, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: true, scrollwheel: true, streetViewControl: true }; map = new google.maps.Map(document.getElementById("map"), myOptions); mgr = new MarkerManager(map); google.maps.event.addListener(mgr, 'loaded', function () { setupPointsVente(); }); } function getIcon(images) { var icon = null; if (images) { if (icons[images]) { icon = icons[images]; } else { var size = iconData[images]; icon = new google.maps.MarkerImage( '/google_maps/icones_carte/' + images + '.png', //url new google.maps.Size(size.width, size.height), //size new google.maps.Point(0,0), //origin new google.maps.Point(0,size.height) //anchor (0,7) ); icons[images] = icon; } } return icon; } function setupPointsVente() { for (var i in pointsVente) { var layer = pointsVente[i]; var markers = []; for (var j in layer["places"]) { var place = layer["places"][j]; var title = place["name"]; var typeIcone = place["type"]; var icon = getIcon(place["icon"][0]); var infoBulle = place["info"]; var zoom = place["zoomLevel"]; var posn = new google.maps.LatLng(place["posn"][0], place["posn"][1]); var marker = createMarker(typeIcone,posn,title,icon,infoBulle,zoom); markers.push(marker); } mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]); } mgr.refresh(); google.maps.event.addListener(map, 'zoomend', function() { if (map.getZoom() <= zoomLevelDefaut) map.panTo(positionDefaut); }); } function panToPosition(posn, panTo) { map.panTo(posn); map.setZoom(6); map.panTo(panTo); } function panToPositionZoom(posn, panTo, zoom) { map.panTo(posn); map.setZoom(zoom); map.panTo(panTo); } function createMarker(typeIcone, posn, title, icon, infoBulle, zoom) { var marker = new google.maps.Marker({ position: posn, title: title, icon: icon, draggable:false }); var zoomLevel = 0; if (zoom != "") { zoomLevel = zoom; } if (typeIcone == "province") { if (title == "Québec") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(47.373059,-68.360596)); }); } else if (title == "Ontario") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(45.625147,-84.378296)); }); } else if (title == "Manitoba") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(52.1776005,-97.0988816)); }); } else if (title == "Saskatchewan") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(52.1776005,-106.6444411)); }); } else if (title == "Alberta") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(52.4837612,-113.4742492)); }); } else if (title == "Colombie-Britannique") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(51.8077842,-122.6910441)); }); } else if (title == "Maritimes") { google.maps.event.addListener(marker, 'click', function() { panToPosition(posn, new google.maps.LatLng(47.352609,-61.388941)); }); } } if (typeIcone == "secteur") { google.maps.event.addListener(marker, 'click', function() { panToPositionZoom(posn, posn, zoomLevel); }); } if (typeIcone == "pays") { google.maps.event.addListener(marker, 'click', function() { map.panTo(positionDefaut); map.setZoom(4); }); } if (typeIcone == "monde") { google.maps.event.addListener(marker, 'click', function() { map.panTo(positionDefaut); map.setZoom(2); }); } if (typeIcone == "point_vente") { google.maps.event.addListener(marker, 'dblclick', function() { var zoomerA = map.getZoom() + 1; panToPositionZoom(posn, posn, zoomerA); }); } if (infoBulle != "") { google.maps.event.addListener(marker, 'click', function() { if (ib) { ib.close(); } var offsetsize = new google.maps.Size(25, -30); var optInfoW = { content: infoBulle.replace("
", ""), disableAutoPan: false, position: posn, zIndex: 15, pixelOffset: offsetsize }; ib = new google.maps.InfoWindow(optInfoW); ib.open(map); }); } return marker; }