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

我有一个用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");
}

很好但是我需要更改它,以便每次单击一个多边形时,它都会同时突出显示,并且先前单击的多边形会恢复为原始样式,因此一次只能“选择”一个多边形.

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

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);
}
上一篇:基于leaflet的标绘功能(一)--可调整的圆


下一篇:javascript-如何在一个html页面上显示多个地图