如何在Leaflet中清除标记?实现按ID清除标记的函数疑问
Leaflet按ID清除标记的解决方案
嘿,我来帮你搞定这个Leaflet清除标记的问题!你已经写好了遍历标记对象的循环,接下来只需要对每个标记执行从地图移除的操作就行啦。
在Leaflet里,每个Marker对象都自带了remove()方法(Leaflet v1.0+版本支持),调用它就能把标记从绑定的地图上移除。修改后的代码如下:
public clearMarkers(): void { for (var id in this.markers) { // 调用remove方法将标记从地图上移除 this.markers[id].remove(); } this.markers = {}; }
要是你用的是比较旧的Leaflet版本(v0.7.x及更早),remove()方法当时还叫removeFrom(),这时候需要传入你的地图实例对象,代码就得改成这样:
public clearMarkers(): void { for (var id in this.markers) { // 替换mapInstance为你实际的地图实例变量名 this.markers[id].removeFrom(mapInstance); } this.markers = {}; }
这样循环执行完,所有标记都会被从地图上清除,最后再把this.markers重置为空对象,就完成整个清除流程啦。
内容的提问来源于stack exchange,提问作者Dominik Lorke
相关产品推荐
相关产品推荐

