我已经使用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
答案 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等。对不起,我的英语水平,我希望我谦虚的解决方案能够帮助所有沮丧的开发人员,因为我整个小时都在工作。