(1) добавить группу слоев и массив для хранения слоев и ссылки на слои как глобальные переменные:
var search_group = new L.LayerGroup ();var clickArr = new Array ();
(2) добавить карту
(3) Добавить групповой слой на карту
map.addLayer (search_group);
(4) функция добавления к карте со всплывающим окном, содержащим ссылку, которая при нажатии будет иметь опцию удаления.Эта ссылка будет иметь, в качестве ее идентификатора, длинную точку точки.Затем этот идентификатор будет сравниваться с тем, когда вы нажимаете на один из созданных вами маркеров и хотите его удалить.
map.on('click', function(e) {
var clickPositionMarker = L.marker([e.latlng.lat,e.latlng.lng],{icon: idMarker});
clickArr.push(clickPositionMarker);
mapLat = e.latlng.lat;
mapLon = e.latlng.lng;
clickPositionMarker.addTo(search_group).bindPopup("<a name='removeClickM' id="+e.latlng.lat+"_"+e.latlng.lng+">Remove Me</a>")
.openPopup();
/* clickPositionMarker.on('click', function(e) {
markerDelAgain();
}); */
});
(5) Функция удаления, сравнение маркера lat long с идентификатором, сгенерированным при удалении:
$(document).on("click","a[name='removeClickM']", function (e) {
// Stop form from submitting normally
e.preventDefault();
for(i=0;i<clickArr.length;i++) {
if(search_group.hasLayer(clickArr[i]))
{
if(clickArr[i]._latlng.lat+"_"+clickArr[i]._latlng.lng==$(this).attr('id'))
{
hideLayer(search_group,clickArr[i]);
clickArr.splice(clickArr.indexOf(clickArr[i]), 1);
}
}
}