wbe*_*end 4 javascript leaflet mapbox
我有一张用 leaflet.js 制作的地图,其中包含由 70 个多边形组成的 geoJSON 层。每次用户单击多边形时,它都会突出显示,并且侧面板会填充数据并打开:
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");
}
Run Code Online (Sandbox Code Playgroud)
效果很好。但我需要更改它,以便每次单击多边形时,它都会同时突出显示,并且先前单击的多边形返回到原始样式,因此一次只能“选择”一个多边形。
我已经尝试过这个,但它不起作用(面板不再更新或打开):
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;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助。
你的任务是错误的,它必须是
lastClickedLayer = layer;
Run Code Online (Sandbox Code Playgroud)
您还应该添加额外检查是否lastClickedLayer已设置:
if(lastClickedLayer){
geojson.resetStyle(lastClickedLayer);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7063 次 |
| 最近记录: |