Я использую Leaflet с моим ионным приложением для рисования полигонов на загруженной карте плана этажа. Все работает отлично. У меня проблемы с очисткой существующих полигонов, прежде чем я перерисовываю карту, что приводит к наложению нескольких слоев.
Вот что я делаю до сих пор:
.ts file
ngOnInit() {
// get saved polygons from db
...
.subscribe((res => {
res.forEach(data => {
this.drawPolygon(data);
});
}));
}
...
// Draw each of the saved polygons
drawPolygon(data) {
if (data.polygon.geometry) {
let shape = {
polygon: data,
type: data.polygon.type,
geometry: {
type: data.polygon.geometry.type,
coordinates: data.polygon.geometry.coordinates
},
properties: {}
};
// Remove all existing layers
L.geoJSON(shape, {
onEachFeature: this.onEachFeature.bind(this),
}).addTo(this.myMay);
}
}
// onEachFeature method to trigger popover
onEachFeature(feature, layer) {
layer.on('click', event => {
let popover = this.popoverCtrl.create('MyComponent', {
layer: feature
});
popover.present();
}, this);
}
Я пробовал различные методы removeLayer
или clearLayers
, чтобы даже без удачи удалить карту. Любые предложения приветствуются!
EDIT
Если я обновлю страницу после всего, все дополнительные слои будут удалены - и один слой останется, как и должно быть.