Поведения Яндекс.Карт (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");
}