Leaflet - дубликаты маркеров, removeLayer, clearLayers скрывают только маркеры - PullRequest
1 голос
/ 14 марта 2020

markerGroup: L.LayerGroup;

this.markerGroup.eachLayer(function (layer) {
    this.markerGroup.removeLayer(layer);
});

this.markerGroup.clearLayers();

removeLayer () и clearLayers () работают, как описано в документации листовки, но мне интересно, есть ли способ удалить слой / маркер / экземпляр из моей переменной markerGroup целиком. Несмотря на то, что маркеры очищаются / удаляются, при вызове моей кнопки refre sh в нем остаются прежние маркеры в переменной markerGroup и снова добавляются те же самые маркеры, что дублирует их. Это проблема, так как у меня есть тени для этих маркеров, которые дублируют друг друга и в итоге становятся непрозрачными на 100%. Кто-нибудь получил какие-либо предложения или сталкивался с этой проблемой раньше?

Редактировать: Спасибо за предложение @Falke Design. map.removeLayer не работает для меня, к сожалению. Надеемся, что приведенная ниже информация более полезна:

refreshButton() {
    this.markerGroup = new L.LayerGroup;
    clearInterval(this.refreshTimer);
    this.dynamicLatLong = this.map.getCenter();
    this.dynamicZoom = this.map.getZoom();
    this.markerGroup.clearLayers();
    this.polygonGroup.clearLayers();
    this.map.removeLayer(this.markerGroup);
    this.getCurrentAzure();
    this.leafletMap();
}

getCurrent Azure () использует a для l oop для получения таких данных, как lat, lng, et c. каждого экземпляра и присваивает его переменной с именем marker. Каждый маркер добавляется в markerGroup с этой строкой:

marker.addTo(this.markerGroup);

leafletMap () создает карту и dr aws markerGroup на карту с этой строкой:

this.markerGroup = L.layerGroup().addTo(this.map);
...