2017-10-19 1 views
2

Ich arbeite mit Ebenen in Google Maps mit Geojson Daten.Google maps layer onclick change stil polygon

Was ich jetzt habe, ist eine Ebene mit vier verschiedenen Polygonen und wenn Sie darauf klicken, werden sie von Grau zu Grün. Aber wenn ich wieder klicke, ändert sich nicht wieder in grau und das ist der Zweck der Klick-Funktion.

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

In meinem Fall funktioniert es in meinem Lektor, https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/. Dies ist der vollständige Codeausschnitt.

Ich reparierte es !! ich die Position von ein paar Zeilen zu ändern und es auf false gesetzt oder wahr

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

Hallo, können Sie uns den vollständigen relevanten Code zeigen? Oder noch besser, vervollständigen Sie das Snippet mit Ihrem Code, damit wir sehen können, dass es funktioniert. –

+0

Ich werde das in einem Moment tun – MissesA

Antwort

0

Sie sollten die isColorful propertyb auch in Ihrem sonst Klausel sonst Sie

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

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

Danke für den Tipp! – MissesA

+0

@Audrey gut, wenn meine Antwort richtig ist, bitte markieren Sie es als akzeptiert ... siehe hier http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge