Клуб API Карт

Один выбор listBox

Пост в архиве.

Добрый день! Хочу реализовать подключение своих слоёв карт через listBox.

Накидал пример: https://jsfiddle.net/3t01k3gh/

Вроде основное работает, но выбор должен быть только одного элемента списка, чтобы показывалась только одна карта.

Очень прошу мне помочь, мучаюсь с этим довольно долго.

7 комментариев

Да вроде бы все просто, так?

Спасибо) Почти работает! Но не совсем. Если выбрать сначала первый слой, затем переключиться на второй, а потом отключить второй, первый никуда не девается. Он не отключается.

Поможете решить?

Да, надо удалять слой всегда

https://jsfiddle.net/3t01k3gh/2/

Проверил. Слои не удаляются с карты при переключении. Только при снятии селекта повторным кликом.

А я иначе исправил, так тоже работает:

 

                if(i != item) {

                    myMap.layers.remove(i.data.get('map'));

                    i.deselect();

                }

Есть ли разница между моим и вашим способом?

в общем должно быть так:

                if(i != item && i.isSelected()) {

                    i.deselect();

                }

иначе будут лишние deselect-ы кидаться при количестве item-ов > 2

где удалять слой особой разницы нет, но логичнее это делать в обработчике deselect

https://jsfiddle.net/3t01k3gh/3/

 

Спасибо огромное! Цены вам нет.