Я расширяю LayerGroup
и _ 2_ классы для включения свойства id
, которое мне нужно для идентификации определенного слоя / группы слоев (это также отражает идентификатор слоя DIV в DOM).
Пример для TileLayer
:
export class OperationalLayer extends TileLayer {
id: String;
constructor(url: string, name: string, id: string) {
const source = new TileWMS({
params: {'LAYERS': name},
url: url,
});
super({source: source});
this.id = id;
}
}
У меня также есть другой класс, который расширяет старый класс Map
.
Я бы хотел каким-то образом иметь в этом расширенном классе Map getLayers()
метод, который должен возвращать мои настроенные (расширенные) слои с их id
информацией, а не BaseLayer
по умолчанию для OpenLayers.
Я не могу найти способ сделать это. Я просмотрел исходный код как addLayer()
и _11 _, и они имеют дело с BaseLayer
типом слоев, поэтому я думаю, мне нужно настроить эти методы (перегрузить их?), но я не совсем уверен, что это правильный путь.
По сути, моей конечной целью было бы получить мои индивидуальные идентификаторы слоев следующим образом:
// here getLayers() should now return my customized layer type
myCustomizedMap.getLayers().forEach(customLyr => console.log(customLyr.id)) // MY ID PROPERTY HERE