Как получение события change от layer в OL3 используя ol.control. LayerSwitcher

Я использую Опен Лайерс 3 с plugin ol.control. LayerSwitcher и он хотел знать, как я могу получать, когда я меняю layer на switcher. Я искал много в Интернете и я не нахожу решение этого. Идея, - когда будет сделан изменение или выбор layer используя plugin ol.control. LayerSwitcher реализовал такое действие как например alert.

Если бы кто-то мог давать мне помощь или альтернативу этому. Если они знают о другой альтернативе, которую я не использовал ol.control. LayerSwitcher и определите событие change специфического layer, мне хотелось бы знать это.

Давайте говорить, что у меня есть три layers в switcher.

  • Layer1
  • Layer2
  • Layer3.

Назначенный по умолчанию эта в Layer1. Если я меняю или выбираю Layer2 я хотел бы, чтобы он выполнил alert. Но каждый раз, когда был выбран Layer2. Костлявым должно бы быть событие.

0
задан 07.01.2017, 17:57
0 ответов

Объекты, которые они получают в наследство от класса ol.layer.Base они выражают событие 'change:visible', когда он меняет Вашу видимость.

Убедись как в примерах LayerSwitcher, что у Layers было свойство type : 'base' для того, чтобы это функционировало.

Используй нечто похожее тогда:

[Layer1, Layer2, Layer3].forEach(function(l){
  l.on('change:visible', function(e){
    console.log(`Mi capa ${l.name} está visible ? ${l.getVisible()}`)
  }
})
1
ответ дан 03.12.2019, 17:50

Теги

Похожие вопросы