我在每个多边形上都有一个右键单击事件,从文件生成并保存在mapData = map.Data();
这还包括每层的图层控制,由event
的返回确定。
此时,右键单击事件应该只是更改多边形的颜色和关联的属性。例如。如果green
让red
生成green
thisLayer.addListener('rightclick', function (event) {
removeInfoWindows(Layer);
var color;
if (event.feature.f.Enabled === 0) {
color = '#006301';
event.feature.f.Enabled = 1
} else {
color = '#630900';
event.feature.f.Enabled = 0
}
thisLayer.overrideStyle(function (event) {
return {
fillColor: color,
strokeWeight: 2
};
})
})
一切正常,但地图上没有任何内容更新。在控制台中我可以看到event.feature.f.Enabled = 1
改变了成功,甚至当在后一阶段该属性的更新请求,但颜色不更新,除非我调用一个事件上的任何其他多边形/层,除非我打电话从事件所述多边形,刷新数据的显示......从而正确地改变多边形的颜色。这可以继续,许多多边形在单独点击之前不会更新。
答案 0 :(得分:0)
修正了它:event.feature
thisLayer.addListener('rightclick', function (event) {
removeInfoWindows(Layer);
var color;
var stroke;
if (event.feature.f.Enabled === 0) {
color = '#006301';
stroke = 4;
event.feature.f.Enabled = 1
} else {
color = '#a8a8a8';
stroke = 1;
event.feature.f.Enabled = 0
}
thisLayer.overrideStyle(event.feature, {
fillColor: color,
strokeWeight: stroke
});
})