gpt4 book ai didi

javascript - 单击时重置传单多边形上的样式

转载 作者:行者123 更新时间:2023-11-29 10:16:07 26 4
gpt4 key购买 nike

我有一张用 leaflet.js 制作的 map ,它的 geoJSON 层由 70 多个多边形组成。每次用户单击多边形时,它都会突出显示,并且侧面板会填充数据并打开:

function clickFeature(e) {
var layer = e.target;
layer.setStyle({
weight: 3,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});

info.update(layer.feature.properties);
$( "#mypanel" ).panel("open");
}

这很好用。但我需要更改它,以便每次单击一个多边形时,它会同时突出显示并且之前单击的多边形返回到原始样式,因此一次只能“选择”一个多边形。

我已经试过了,但它不起作用(面板不再更新或打开):

var lastClickedLayer;
function clickFeature(e) {
geojson.resetStyle(lastClickedLayer);
var layer = e.target;
layer.setStyle({
weight: 3,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});

info.update(layer.feature.properties);
$( "#mypanel" ).panel("open");
layer = lastClickedLayer;
}

非常感谢任何帮助。

最佳答案

你的赋值错了,必须是

lastClickedLayer = layer;

你还应该添加一个额外的检查是否 lastClickedLayer 已经被设置:

if(lastClickedLayer){
geojson.resetStyle(lastClickedLayer);
}

关于javascript - 单击时重置传单多边形上的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21029533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com