如何在角度分量中删除标记到传单地图

问题描述

我正在Angular组件上使用传单,当用户从esri-leaflet反向地理编码中单击地图时,我正在显示标记,我想删除用户单击时添加的先前标记

这是我的代码

    map.on('click',<LeafletMouseEvent>(e) => {

  geocodeService.reverse().latlng(e.latlng).run( (error,result) => {

    if (error) {
      return;
    }

    L.marker(result.latlng).addTo(map).bindPopup(result.address.Match_addr).openPopup();
  });

});

解决方法

将标记存储在变量中,然后在添加新标记之前再次单击地图后将其从地图中删除。

...
marker;
...
 map.on("click",(e) => {
  new ELG.ReverseGeocode().latlng(e.latlng).run((error,result) => {
    if (error) {
      return;
    }
    if (this.marker && map.hasLayer(this.marker))
      map.removeLayer(this.marker);

    this.marker = L.marker(result.latlng)
      .addTo(map)
      .bindPopup(result.address.Match_addr)
      .openPopup();
  });
});

Demo

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...