Клуб API Карт

Запрет перетаскивания карты

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

Версия API 2. Пытаюсь запретить перетаскивание карты:

 

...

myMap.behaviors.disable('drag');

alert(myMap.behaviors.isEnabled('drag'));

 

>> true

т.е. перетаскивание продолжает работать, как запретить - не понятно. Что я делаю не так?

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

Там фигня такая, если на карте есть тулбар, то не отключится. Также как и если принудительно говорить, линейка или лупа по умолчанию.

Уберите тулбар, и будет реакция. Скорее всего, можно из тулбара убрать кнопку перетаскивания и все будет хорошо. Последнее пока не проверял, но у меня в планах попробовать есть :)

 

А может надо попробовать отключать это свойство ПОСЛЕ создания тулбара. Это вторая мысль на этот счет. Надо тоже проверить. Проверил. У меня так и есть, стоит после создания тулбара. Так что это не поможет :P

Хотя было бы боле удобно, если бы при выключении перетаскивания автоматом становилась недоступной эта кнопка

 

Sergey Konstantinov
28 января 2016, 04:30

Кнопка "drag" тулбара включает поведение drag. Так же, как кнопка ruler - поведение ruler.

Удалите тулбар или кнопку drag из него.

 

Алексей Ч.
28 января 2016, 04:30

 

или кнопку drag из него.

Куском кода не поделитесь?

Алексей Ч.
28 января 2016, 04:30

Спасибо всем за информацию. Дело обстоит действительно так - при наличии на карте стандартных Инструментов - в рантайме драг не выключить ( что странно - большой вопрос к разработчикам)

В итоге просто отключил стандартные контролы:

myMap.controls
            // Список типов карты
            .add('typeSelector')
            // Кнопка изменения масштаба - компактный вариант
            // Расположим её справа
            .add('smallZoomControl', { right: 5, top: 75 }) ;
            // Стандартный набор кнопок не включаем!
            //.add('mapTools');

После чего тема myMap.behaviors.disable('drag'); заработала

А тогда вопрос :)

Получается, что поведение тулбара не синхронизировано с поведением "поведений"

Т.е. смотрите,

1 - создаю дефолтный тулбар

2 - включаю программно лупу

3 - Лупа на карте включается, а кнопка в тулбаре - нет.

Она адекватно включится, если породить событие клика в тулбаре на лупе.

Предложение - сделать синхронизацию :)

Отключается поведение - отключается кнопка.

Включается поведение (например лупа )- включается кнопка лупы (а не перетаскивание остается).

Ну опять же. Это только пожелания.

Sergey Konstantinov
28 января 2016, 04:30

Это баг, мы про него знаем. Предположительно, в следующей версии будет именно так - состояние кнопок тулбара будет полностью согласовано с состоянием поведения, за которое кнопка отвечает.