11522 sujets

JavaScript, DOM et API Web HTML5

Salut,

je fais une boucle de mes marqueurs pour les afficher sur une google map.
Au click sur un marqueur, je change d'icone, mais je n'arrive pas à réinitialiser tous les autres marqueurs avec l'icone de départ, une idée ?

Voici ma boucle qui affiche mes marqueurs :


//boucle marqueurs
    var marker, i;
    var icon = {
    	url: './img/geo_icon.png'
    };
    for (i = 0; i < locations_agences.length; i++) {  
    	marker = new google.maps.Marker({
    		position: new google.maps.LatLng(locations_agences[i][0], locations_agences[i][1]),
    		map: map_agences,
    		icon:icon,
    		title:locations_agences[i][3]
    	});

    	google.maps.event.addListener(marker, 'click', (function(marker, i) {
    		return function() {
    			marker.setIcon('./img/geo_icon_blue.png');
    			scroll_to_agence(locations_agences[i][2]);
    		}
    	})(marker, i));
    }

Modifié par Pedrothelion (06 Mar 2019 - 18:10)
Pour les intéressés, voici la solution, c'était tout con...


//boucle marqueurs
    var markers= [];
    var marker, i;
    var icon = { url: './img/geo_icon.png' };
    var icon_selected = { url: './img/geo_icon_blue.png' };


    for (i = 0; i < locations_agences.length; i++) {  
    	marker = new google.maps.Marker({
    		position: new google.maps.LatLng(locations_agences[i][0], locations_agences[i][1]),
    		map: map_agences,
    		icon:icon,
    		title:locations_agences[i][3]
    	});

    	markers.push(marker);

    	google.maps.event.addListener(marker, 'click', (function(marker, i) {
    		return function() {
    			for (var j = 0; j < markers.length; j++) {
    				markers[j].setIcon(icon);
    			}
    			marker.setIcon(icon_selected);
    			scroll_to_agence(locations_agences[i][2]);
    		}
    	})(marker, i));
    }
Meilleure solution