1

我在传单地图中实现了一个 pin 指针。

function showLeaflet() {
  var map = L.map("map", {minZoom:1, maxZoom: 1}).setView([66, 384], 1);
  var imageUrl = detailResult.deck[deckFloor].deckplanLarge;
  var imageBounds = [[0, -200], [768, 1024]];
  var cord = (detailResult.deck[deckFloor].markerCordinates).split(',');
  L.imageOverlay(imageUrl, imageBounds).addTo(map);
  L.marker([cord[0], cord[1]]).addTo(map).bindPopup(detailResult.title).openPopup();
  map.setMaxBounds(imageBounds);
}

如何在以下事件中删除该引脚指针。

map.on('click', function(){
  //remove pointer
});

请帮我。谢谢..

4

2 回答 2

4

您需要将标记分配给变量,以便您可以使用以下removeLayer方法将其从地图中删除L.Map

var marker = L.marker([0, 0]).addTo(map);

map.on('click', function () {
  map.removeLayer(marker);
});

Plunker 上的工作示例:http ://plnkr.co/edit/lTXtnX?p=preview ,这里是L.Map层方法的参考:http: //leafletjs.com/reference.html#map-stuff-methods

于 2015-02-16T14:39:51.227 回答
1

您需要将创建的标记存储在某处,然后使用它调用 map.removeLayer。我在下面编辑了您的代码。

function showLeaflet() {
  var map = L.map("map", {minZoom:1, maxZoom: 1}).setView([66, 384], 1);
  var imageUrl = detailResult.deck[deckFloor].deckplanLarge;
  var imageBounds = [[0, -200], [768, 1024]];
  var cord = (detailResult.deck[deckFloor].markerCordinates).split(',');
  L.imageOverlay(imageUrl, imageBounds).addTo(map);
  var mark = L.marker([cord[0], cord[1]]).addTo(map).bindPopup(detailResult.title).openPopup();
  map.setMaxBounds(imageBounds);

  map.on('click', function(){
      //remove pointer
      map.removeLayer(mark);
  });
}
于 2015-02-16T14:41:25.880 回答