无法删除传单多边形地图上的标记

时间:2019-05-10 20:19:43

标签: leaflet react-leaflet

我已经使用react-leaflet创建了多边形地图。我可以创建它,也可以创建在地图上的多选下拉列表中选择的标记。但是,我无法删除为此选择的标记[或任何标记]。我在下面提供的代码分为初始化映射方法和初始化iis updateMakers的初始化映射方法,后者用于在正在执行的Map上设置新标记。我的问题是删除地图上的标记。我是新来的传单,不是我所缺少的。我试图创建一个“标记”层,但并没有帮助我。请帮忙。谢谢!

var map = new L.Map('polygonMap'); //Initialization of Map
var markers = new L.FeatureGroup().addTo(map); // Creating a Feature Layer

我正在使用有效的markers.addLayer(marker1);添加标记,但是,如果我遍历标记并尝试删除它,则无法执行。请帮助,我是新来的传单。 TIA

2 个答案:

答案 0 :(得分:0)

如果marker1是要删除的标记图层对象,请使用FeatureGroup中的removeLayer函数。

请参见https://leafletjs.com/reference-1.5.0.html#featuregroup-removelayer

您的featureGroup被称为标记,因此它将是:

TextBox

答案 1 :(得分:0)

数小时之后,我试图找出任何解决方案,我只是想使用React传单来隐藏或显示标记。

我可以在标记对象或依赖项/帮助器上设置类名(类),以解决方案为准。在我的解决方案中,我在标记上使用了自定义图标,因此我定义了自定义

ID

然后在任何事件或onclick上实现的我只是通过document.querySelectorAll 我遍历地图中包含提到的marker-icon-route类的所有元素,只需处理文档queryselector

L.icon({
                    iconUrl: ...,className: `marker-icon-route`...})

反之,如果您只想显示标记

document.querySelectorAll('.marker-icon-route').forEach(e => e.style.display = 'none'); 

...此解决方案可用于传单反应提供的其他帮助程序,例如折线,poligones等。对不起,我的英语水平,我希望我谦虚的解决方案能够帮助所有沮丧的开发人员,因为我整个小时都在工作。