var map; var infowindow = null; var markers = []; // ['Title', lat, lng, z-index, 'html'] var sites = [ ]; // console.log(sites); function initialize() { var mapOptions = { // Zoom 7 pour voir la corse.. center: {lat: 43.915414, lng: 4.507610}, zoom: 15, // mapTypeId: google.maps.MapTypeId.ROADMAP, // Désactivation du zoom avec la roulette de la souris scrollwheel: false }; map = new google.maps.Map(document.getElementById('carte'), mapOptions); // Try HTML5 geolocation // if(navigator.geolocation) { // navigator.geolocation.getCurrentPosition(function(position) { // var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); // map.setCenter(pos); // }, function() { // handleNoGeolocation(true); // }); // } else { // // Browser doesn't support Geolocation // handleNoGeolocation(false); // } // console.log(markers); setMarkers(map, sites); // console.table(markers); infowindow = new google.maps.InfoWindow({ content: "Chargement..." }); } function setMarkers(map, pointers) { var markers_length = pointers.length; for (var i = 0; i < markers_length; i ++) { var sites = pointers[i]; switch (sites[5]) { case 'pointer_color': pinColor = "734889"; break; } var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor, new google.maps.Size(21, 34), new google.maps.Point(0,0), new google.maps.Point(10, 34)); var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", new google.maps.Size(40, 37), new google.maps.Point(0, 0), new google.maps.Point(12, 35)); var siteLatLng = new google.maps.LatLng(sites[1], sites[2]); var marker = new google.maps.Marker({ position: siteLatLng, map: map, title: sites[0], zIndex: sites[3], html: sites[4], icon: pinImage, categorie: sites[5], markerId : sites[6], agenceId : sites[7], shadow: pinShadow }); markers.push(marker); // console.log(marker); var contentString = ''; google.maps.event.addListener(marker, 'click', function () { infowindow.setContent(this.html); infowindow.open(map, this); }); } } function setMapOnAll(map) { for (key in markers) { markers[key].setMap(map); } } function showMarkers(map, valeurs) { setMapOnAll(null); // test pour inArray, on transforme les objects en tableaux var checked_categorie = valeurs.categorie; checked_categorie = Object.keys(checked_categorie); if (0 == Object.keys(valeurs.categorie).length) { setMapOnAll(map); return false; } // on boucle sur les markers for (key in markers) { // on boucle sur les fonds du marker en cours si une categorie est presente var categorie_present = false; if (0 == Object.keys(markers[key].categorie).length || 0 < Object.keys(markers[key].categorie).length && 0 == Object.keys(valeurs.categorie).length) { categorie_present = true; } else { var val_seek = 'categ_' + markers[key].categorie; if(checked_categorie.indexOf(val_seek) > -1) { categorie_present = true; } } if (true == categorie_present) { markers[key].setMap(map); } } } google.maps.event.addDomListener(window, 'load', initialize);