Я пытаюсь проверить каждую функцию geojson, если это маркер. Если это так, я хочу удалить размещенный слой, затем снова инициализируйте маркер рисования.
Если это не та позиция, я просто добавлю ее в векторный слой.
Проблема в том, что eachLayer всегда возвращает true, потому что он проходит по всем слоям, и всегда возвращает true, потому что маркер добавлен к функции. Так всегда повторяется.
features.eachLayer(layer => {
if(layer.pm._shape === 'Marker') {
if(e.layer._latlng !== layer._latlng) { //This is never true, should be true if the placed marker is not placed over an existing features marker
features.addLayer(e.layer);
} else if(e.layer._latlng === layer._latlng) { //this elseif is always true for some reason and will loop
map.removeLayer(e.layer)
DrawUtil.addMarker(map, isSnapping); //Alias for pm.enableDraw.marker
features.addLayer(e.layer);
}
}
})
Вот скрипка, я плохо забыл добавить жизненно важный код. https://jsfiddle.net/2ftmy0bu/2/
pm:create
, пожалуйста, добавьте полный код. Также проверьте, является ли слой маркером сlayer instanceof L.Marker
и совпадает ли он по широте сe.layer.getLatLng().equals(layer.getLatLng())
. Пожалуйста, создайте jsfiddle, это облегчит помощь - person Falke Design   schedule 12.10.2020