Поведения Яндекс.Карт (behaviors)
![]()
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
В предыдущем материале Параметры Яндекс.Карт мы с Вами рассмотрели параметры Яндекс.Карты которые необходимо задать во время инициализации карты и возможно изменять после ее создания.
В данном материале мы рассмотрим что такое поведения карты (behaviors).
Поведения карты это набор поведений, определяющих реакцию карты на действия, производимые пользователем.
Например
- при нажатой левой кнопке мыши и перемещении курсора карта сдвигается вслед за курсором.
- при прокручивании колесом мыши происходит изменение масштабирования карты
- при двойном щелчке левой кнопки мыши происходит изменение масштабирования карты
- и т.д.
Если явно не указать набор поведений при инициализации карты, то ей присваивается набор поведений по умолчанию. Доступ к поведениям карты предоставляется полем behaviors. Так же как и параметры карты, поведения можно изменить после ее создания карты.
Указываем набор поведений при инициализации карты
создаем карту указывая набор поведений
<script type="text/javascript"> var myMap; // при успешной загрузке API выполняется соответствующая функция ymaps.ready(function(){ // создание экземпляра карты и его привязка к контейнеру с id="map" myMap = new ymaps.Map("map", { // центр карты center: [55.75396, 37.620393], // коэффициент масштабирования zoom: 8, // тип карты, по умолчанию используется тип карты "схема" //type: "yandex#map", // подключаем поведения: "по умолчанию" behaviors: ["default"] // или так - подключаем поведения: "по умолчанию" и редактор маршрутов routeEditor behaviors: ["default", "routeEditor"] // или так - подключаем поведения: dblClickZoom, scrollZoom, ruler behaviors: ["dblClickZoom", "scrollZoom", "ruler"] // или так - отключаем все поведения behaviors: [] }); // ... // код работы с поведением Яндекс.Карты // ... }); // end ymaps.ready </script>
Набор поведений Яндекс.Карт
Поведение | Описание |
---|---|
drag | перетаскивание карты с помощью мыши либо одиночного касания |
dblClickZoom | масштабирование карты двойным щелчком кнопки мыши |
leftMouseButtonMagnifier | масштабирование карты при выделении области левой кнопкой мыши |
rightMouseButtonMagnifier | масштабирование карты при выделении области правой кнопкой мыши |
multiTouch | масштабирование карты мультисенсорным касанием |
routeEditor | редактор маршрутов |
ruler | "Линейка", позволяет отмечать на карте точки и отображать расстояния между ними |
scrollZoom | масштабирование карты колесом мыши |
storage | Хранилище классов поведений карты. Добавление нового поведения на карту производится через это хранилище |
Изменение поведений карты после ее создания
Рассмотрим методы для изменения поведений карты.
Метод | Описание |
---|---|
disable() | Выключает поведение |
enable() | Включает поведение |
isEnabled | Проверяет, включено ли поведение, возвращает Boolean |
getParent() | Возвращает ссылку на родительский объект |
setParent(parent) | Устанавливает родительский объект. Если передать значение null, то элемент управления будет только удален из текущего родительского объекта |
рассмотрим методы для работа с поведениями на примере поведения drag
// ... // код работы с поведением Яндекс.Карты // ... // включаем поведение "перетаскивание карты с помощью мыши либо одиночного касания" myMap.behaviors.enable("поведение"); т.е. myMap.behaviors.enable("drag"); // отключение поведений карты myMap.behaviors.disable("drag"); // проверяем, включено ли поведение myMap.behaviors.isEnabled('drag'); // проверяем, если ли поведение не включено, то if (!(myMap.behaviors.isEnabled('drag'))) { // включаем поведение drag myMap.behaviors.enable("drag"); }