Как удалить буклет-маркер-панель на карте листовки?
Я внедрил указатель булавки в мою карту листовки.
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);
});
}