说明:
使用leaflet,并制作了一个名为Map
的class
,以便在需要时轻松使用所有功能,所有设置,但有一个简单的问题,我无法处理它。init
上的Map在中心创建一个标记,但我想让用户在单击时创建新标记,但删除前一个,如果您单击Map,则会创建许多标记,但我只想要一个标记。
JSFiddle
我只需要这个密码:
if (marker) this.map.removeLayer(marker);
但它当然给予我这样的错误:
参考错误:未定义标记”
问题:
因为先前的标记创建在marker()
中,但新标记创建在newMarker()
函数中,所以我不知道如何删除旧标记,我以前这样做时,我的代码不是class
容易访问let marker
,但现在我混淆了如何访问marker()
函数中的marker
变量。
目标:(简称)
我只是想在Map上点击后一个标记,它已经在Map上创建了许多标记!
2条答案
按热度按时间3zwjbxry1#
您可以初始化一个空的
layerGrooup
,并在每次添加标记时将其存储在那里,当您添加一个新标记时,您可以清除markerGroup的图层。此外,你不应该示例化你的Map两次,所以你只有一个Map引用。
x一个一个一个一个x一个一个二个x
hmtdttj42#
添加图层(此状态标记);prevState.标记.移除(这个.我的Map);