2017-10-19 7 views
2

Je travaille avec des calques dans Google Maps en utilisant des données geojson. Ce que j'ai maintenant est un calque avec quatre polygones différents et quand vous cliquez dessus, ils passent du gris au vert. Mais quand je clique à nouveau, il ne revient pas en gris et c'est le but de la fonction de clic.Google maps layer onclick changer de polygone de style

map.data.setStyle(function(feature) { 
 
    var color; 
 
    if (feature.getProperty('isColorful')) { 
 
     color = '#009900'; 
 
    }else{ 
 
     color: 'grey'; 
 
    } 
 
    return ({ 
 
     fillColor: color, 
 
     strokeColor: color, 
 
     strokeWeight: 2 
 
    }); 
 
});

Dans mon cas, il travaille dans mon rédacteur en chef, https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/. Ceci est le code de l'extrait complet.

Je l'ai réparé !! je change la position de quelques lignes et le mettre à vrai ou faux

map.data.setStyle(function(feature) { 
 
var color; 
 
if (feature.getProperty('isColorful')) { 
 
    feature.setProperty('isColorful', false); 
 
    color = '#009900'; 
 
}else{ 
 
    color: 'grey'; 
 
} 
 
return /** @type {google.maps.Data.StyleOptions} */({ 
 
    fillColor: color, 
 
    strokeColor: color, 
 
    strokeWeight: 2 
 
}); 
 
}); 
 

 
map.data.addListener('click', function(event) { 
 
var name = event.feature.getProperty('name'); 
 
var index = vm.areas.indexOf(name); 
 
    if(index >= 0){ 
 
    vm.areas.splice(index,1); 
 
    event.feature.setProperty('isColorful', false); 
 
    } else{ 
 
    vm.areas.push(name); 
 
    event.feature.setProperty('isColorful', true); 
 
    } 
 
    $scope.$apply(); 
 
});

+0

Bonjour, pouvez-vous nous montrer le code complet? Ou encore mieux, complétez l'extrait avec votre code afin que nous puissions le voir fonctionner. –

+0

Je vais le faire dans un instant – MissesA

Répondre

0

Vous devez modifier le propertyb isColorful trop dans votre clause d'autre sinon vous avez toujours faux

map.data.setStyle(function(feature) { 
var color; 

    if (feature.getProperty('isColorful')) { 
     feature.setProperty('isColorful', false); 
     color = '#009900'; 
    }else{ 
     feature.setProperty('isColorful', true); 
     color: 'grey'; 
    } 
+0

Merci pour le pourboire! – MissesA

+0

@Audrey bien si ma réponse est correcte s'il vous plaît marquer comme accepté ... voir comment ici http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge