У меня есть LayerGroup, в которой размещены несколько изображений наложений. Все они отображаются правильно.
Теперь я хотел бы иметь возможность показать и скрыть эту LayerGroup в LayersControl.
Моя LayerGroup определена в функции, подобной этой:
this.imgOvl.forEach((img) => {
this.imgOvlGp.addLayer(img);
});
Если я добавлю эту LayerGroup в свой существующий и работающий объект наложения, я получу сообщение об ошибке:
lControl = {
bLayers: {
'Open Street Map': xyz
},
ol: {
'GeoJSONs': xyz,
'Image Overlays': this.imgOvlGp // does not work
}
};
Я получаю это сообщение об ошибке в браузере:
MapViewComponent.html: 1 ОШИБКА TypeError: Невозможно прочитать свойство 'on' из
не определено
в NewClass._addLayer (leaflet-src.js: 5101)
на NewClass.addOverlay (leaflet-src.js: 5005)
на сайте leaflet-control-Layers.wrapper.js: 52
at DefaultKeyValueDiffer.push ../ node_modules/@angular/core/fesm5/core.js.DefaultKeyValueDiffer.forEachAddedItem
(core.js: 19640)
на сайте leaflet-control-Layers.wrapper.js: 51
в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invoke
(zone.js: 391)
в Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.run (zone.js: 150)
на NgZone.push ../ node_modules/@angular/core/fesm5/core.js.NgZone.runOutsideAngular
(core.js: 17248)
at LeafletControlLayersWrapper.push ../
(листовка-Control-layers.wrapper.js: 41)
at LeafletControlLayersWrapper.push ../
(листовка-Control-layers.wrapper.js: 32)
Если я уберу строку ..
'Image Overlays': this.imgOvlGp // does not work
.. из объекта ol все работает нормально.
Есть идеи?
UPDATE
this.overlays = imgOverlays;
this.overLayGroup = new L.LayerGroup().addTo(this.map);
this.overlays.forEach((img) => {
this.overLayGroup.addLayer(img);
});
// If I do it like this, it works..
const overlay = {'Overlays': this.overLayGroup};
L.control.layers(null, overlay).addTo(this.map);