如何解决单击元素上的传单在图层刷新时消失的问题
我知道这个问题可能有一个非常简单的解决方案,但我一直找不到解决方法。
我在地图中有多个对象,当我单击它们时,我希望该对象以不同的颜色突出显示(并在单击下一个对象时返回原始颜色)。我正在通过 GeoJSON 加载数据并使用 pointToLayer 在地图上绘制圆形标记。完整版的 Web 应用程序具有过滤器,可在过滤器更改时重新加载 L.GeoJSON 函数。
问题是,一旦我在地图上选择了要素,然后重新加载 L.geoJSON 函数,我就会丢失之前从 Layer1 中选择的所有项目。一旦选择了新功能,我不确定将这些重置为原始样式的最佳方法。我试过使用 resetStyle 和 setStyle 函数,但没有成功。
{ "type": "Feature","properties": {},"geometry": { "type": "Point","coordinates": [ -2.6,52.8 ] } },{ "type": "Feature","coordinates": [ -2.4,55.6 ] } },"coordinates": [ -2.2,55.2 ] } },"coordinates": [ -3.8,56.8 ] } },]
var Layer1 = L.layerGroup()
loadjsondata()
Layer1.addTo(Map1)
function loadjsondata() {
Layer1.clearLayers()
L.geoJSON(geojsondata,{
pointToLayer: function (feature,latlng) {
console.log(feature)
return L.circleMarker(latlng,{radius: 15,fillColor: 'green',color: "black",weight: 1,opacity: 0.8,fillOpacity: 0.5})},onEachFeature: onEachFeature,}).addTo(Layer1);
}
var SelectedItemLayer = L.layerGroup()
SelectedItemLayer.addTo(Map1)
function onEachFeature(feature,layer) {
layer.on('click',function(e) {
SelectedItemLayer.clearLayers();
L.circleMarker(feature.geometry.coordinates.sort(function(a,b){return b-a}),{
style : {color: "black",opacity:1,weight:4,fill:false}
}
).addTo(SelectedItemLayer);
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。