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);