Как удалить буклет-маркер-панель на карте листовки?

Я внедрил указатель булавки в мою карту листовки.

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 ответа

Решение

Вам нужно присвоить свой маркер переменной, чтобы вы могли использовать его, чтобы удалить его с карты, используя 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.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);
  });
}
Другие вопросы по тегам