Я пытаюсь добавить функциональность переименования и удаления к моей карте, но до сих пор я не смог указать одно значение в массиве маркеров.Я попытался использовать markers.indexOf (marker), как показано ниже:
L.DomEvent.on(deleteBtn, 'click', function(ev) {
var index = markers.indexOf(marker);
console.log(marker.indexOf(index));
console.log('Delete button clicked!');
}, this);
});
При этом я получаю все маркеры на карте в консоли.Когда я использую метод array.find, я получаю значение false, указывающее, что значение не существует, но каждый маркер является объектом, хранящимся в локальном хранилище. Цель состоит в том, чтобы иметь возможность получить индекс члена массива markers длявозьмите значения из локального хранилища, чтобы изменить их при необходимости.
// Creates the custom markers added by the user and stores them to localStorage
var markers = [];
var customLayer = new L.layerGroup();
myMap.on('contextmenu', function(e) {
var marker = L.marker(e.latlng,
{icon : flagIcon}).addTo(customLayer).addTo(myMap);
marker.bindTooltip("<b>Custom</b>", {permanent: true, offset: [0, 0],direction: "bottom"});
customLayer.addTo(myMap);
markers.push({ coords: e.latlng, name: "<b>Custom</b>" });
marker.on('click', function(e) {
renameDeleteChoice(e);
L.DomEvent.on(renameBtn, 'click', function(ev) {
console.log('Rename button clicked!');
}, this);
L.DomEvent.on(deleteBtn, 'click', function(ev) {
// I have been trying code here
console.log('Delete button clicked!');
}, this);
});
// Save marker Coords to localStorage
markers.forEach(function() {
window.localStorage.setItem('customData', JSON.stringify(markers));
});
});
Я только что настроил это неправильно?Является ли мой массив, который я выдвигаю новые значения, чтобы иметь такое поведение?Вот документация для листовки на случай, если это кому-нибудь понадобится.Буду рад ответить на любые вопросы для уточнения.
https://leafletjs.com/reference-1.3.4.html
Заранее благодарим за любые предоставленные вами рекомендации.