1
我有一個geojson功能圖層和每個標記我可以綁定一個彈出 和我可以修改屬性來改變標記顏色onclick,但我不能混合兩者。 我想改變顏色並顯示彈出。我跟着這個 mapbox example切換標記顏色點擊並顯示彈出
看來,當我添加一個點擊事件來改變它的顏色「關閉」彈出... 當我刪除此單擊事件,在彈出窗口 編輯:此代碼工作
featureLayer = L.mapbox.featureLayer()
.loadURL(getUrl())
.on('ready', setStyle)
.on('click', function(e) {
e.layer.bindPopup(e.layer.feature.properties.name);
resetColors();
e.layer.feature.properties['old-color'] = e.layer.feature.properties['marker-color'];
e.layer.feature.properties['marker-color'] = '#ffffb2';
featureLayer.setGeoJSON(geoJson);
setPopup();
})
.addTo(map);
function resetColors() {
for (var i = 0; i < geoJson.features.length; i++) {
geoJson.features[i].properties['marker-color'] = geoJson.features[i].properties['old-color'] || geoJson[i].features.properties['marker-color'];
}
}
function setStyle() {
geoJson = featureLayer.getGeoJSON();
for (var i = 0; i < geoJson.features.length; i++) {
if(geoJson.features[i].properties['d'] <= distanceLocal)
var color = '#a1d99b';
else
var color = '#636363';
geoJson.features[i].properties['marker-color'] = color;
geoJson.features[i].properties['old-color'] = color;
}
featureLayer.setGeoJSON(geoJson);
setPopup();
}
function setPopup() {
featureLayer.eachLayer(function(marker) {
marker.bindPopup(marker.feature.properties.name);
});
}
感謝您的幫助。我誤解了geojson屬性和圖層之間的關係。我結束了這一點 – stetou