如何删除传单地图中的传单标记窗格?

时间:2015-02-16 14:31:26

标签: leaflet angular-leaflet-directive

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

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
});

请帮帮我。感谢..

2 个答案:

答案 0 :(得分:3)

您需要将标记指定给变量,以便您可以使用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

答案 1 :(得分: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);
  });
}