Стандартные элементы управления
В API Яндекс Карт доступны следующие элементы управления:
- Геолокация – определяет текущее местоположение пользователя;
- Поиск по карте – ищет географические объекты и организации;
- Панель маршрутизации – прокладывает маршрут по заданным точкам. Элемент управления доступен в API начиная с версии 2.1.54;
- Пробки – показывает пробки на карте;
- Переключатель слоев карты – переключает отображаемый слой карты (схема, спутник и гибрид). Кроме того, элемент позволяет показывать на карте сетку панорам;
- Переход в полноэкранный режим – разворачивает карту на все окно браузера;
- Ползунок масштаба – увеличивает или уменьшает масштаб карты;
- Линейка – измеряет расстояние между заданными точками;
- Кнопка – позволяет добавить стандартную кнопку и настроить для нее произвольное поведение;
- Выпадающий список – позволяет добавить элемент управления в виде раскрывающегося меню.
Ниже предоставлена расширенная информация об элементах управления.
Геолокация
|
Класс control.GeolocationControl. Позволяет определить местоположение пользователя путем вызова стандартной геолокационной функции браузера и/или по ip-адресу пользователя. |
Ниже приведен пример добавления кнопки геолокации.
var myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
controls: ['geolocationControl'],
zoom: 10
});
Поиск по карте
Класс control.SearchControl.
Осуществляет поиск объектов на карте. Позволяет искать не только географические объекты, но также и организации (эту возможность нужно включить через опцию provider). Объекты можно искать по названию, адресу или географическим координатам.
У этого элемента управления есть два представления:
- полное – в виде поисковой строки;
- компактное – в виде кнопки поиска.
// Создадим поисковую строку.
var inputSearch = new ymaps.control.SearchControl({
options: {
// Пусть элемент управления будет
// в виде поисковой строки.
size: 'large',
// Включим возможность искать
// не только топонимы, но и организации.
provider: 'yandex#search'
}
}),
// Добавим поисковую строку на карту.
myMap = new ymaps.Map('map', {
zoom: 12,
center: [55.76, 37.64],
controls: [inputSearch]
});
Панель маршрутизации
Класс control.RouteButton.
Строит маршрут по двум заданным точкам.
При нажатии на кнопку откроется всплывающая панель с настройками маршрута. Через эту панель пользователи могут задать пункт отправления и назначения, а также указать тип маршрута: на автомобиле, на общественном транспорте или пешком.
Начальную и конечную точки маршрута можно задать несколькими способами:
- кликом по карте;
- указав адрес в поле ввода;
- по кнопке определения местоположения (на рисунке эта кнопка показана в поле ввода для точки «B»);
- программно, через метод
control.routePanel.state.set()
.
Пример добавления элемента управления на карту:
// Пример добавления панели маршрута.
var myMap = new ymaps.Map('map', {
center: [59.937, 30.313],
controls: ['routeButtonControl'],
zoom: 12
}),
// Получим ссылку на элемент управления.
control = myMap.controls.get('routeButtonControl');
// Программно установим начальную точку маршрута.
control.routePanel.state.set('from', 'чернышевская');
Примечание
Элемент управления control.RouteButton доступен в API начиная с версии 2.1.54.
У данного элемента управления есть несколько представлений: полное (и подпись и иконка), стандартное (только подпись) и компактное (только иконка). Подробнее про адаптивность.
Пробки
Класс control.TrafficControl
Позволяет показывать пробки на карте. Может быть показана как текущая информация, так и статистика по загрузке дорог в указанное время.
В зависимости от размеров карты элемент будет иметь разное представление:
- подробное (для карт больших размеров) – с расширенной информацией и возможностью посмотреть статистику;
- компактное (для небольших карт) – только кнопка включения и выключения дорожной информации.
// Добавим «Пробки».
var myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
controls: ['trafficControl'],
zoom: 12
}),
// Получим доступ к элементу управления.
control = myMap.controls.get('trafficControl');
// Покажем пробки на карте.
control.showTraffic();
Переключатель слоев карты
|
Класс control.TypeSelector. Позволяет переключить отображаемый слой карты: схема, спутник или гибрид. Также позволяет показать на карте сетку панорам. У кнопки есть два представления: подробное (для карт больших размеров) и компактное (см. рисунок). Подробнее про адаптивность. |
Пример добавления «Переключателя слоев»:
var myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
controls: ['typeSelector'],
zoom: 12
});
Полноэкранный режим
|
Класс control.FullscreenControl. Включает/отключает полноэкранный режим. При нажатии на эту кнопку карта развернется на все окно браузера. |
Пример добавления кнопки для перехода в полноэкранный режим:
var myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
controls: ['fullscreenControl'],
zoom: 12
});
Ползунок масштаба
|
Класс control.ZoomControl. Позволяет изменять коэффициент масштабирования карты. В зависимости от высоты карты элемент будет иметь разное представление:
|
Пример добавления ползунка масштаба:
var myMap = new ymaps.Map('map', {
center: [59.937, 30.313],
controls: ['zoomControl'],
zoom: 12
});
Линейка
|
Класс control.rulerControl. Позволяет измерить расстояние между выбранными точками. Чтобы измерить расстояние, нужно нажать на кнопку линейки и кликнуть на карте в нужных точках. |
Ниже приведен пример добавления линейки на карту.
// Добавим кнопку измерения расстояний.
var myMap = new ymaps.Map('map', {
center: [59.937, 30.313],
controls: ['rulerControl'],
zoom: 8
});
Кнопка
|
Класс control.Button. Кнопка со стандартным внешним видом. |
Поддерживается два типа реакций на нажатие кнопки: после нажатия кнопка остается нажатой (поведение по умолчанию) или возвращается в исходное состояние. Тип реакции на нажатие задается опцией selectOnClick
(true/false).
При нажатии на кнопку всегда генерируется событие click. Для кнопок, запоминающих свое состояние после нажатия, дополнительно генерируется событие select или deselect (в зависимости от того, в каком состоянии кнопка находилась в момент нажатия).
Для кнопки можно задавать собственную иконку (с помощью опции image
), а также полностью изменить макет оформления.
|
|
|
|
Открыть примеры в песочнице
API предоставляет внешний модуль, который позволяет задать кнопкам круглое оформление. Модуль позволяет задать круглый вид как для стандартных, так и для собственных элементов управления.
Выпадающий список
|
Классы: control.ListBox и control.ListBoxItem. Позволяет отобразить элемент управления в виде раскрывающегося меню. |
Ниже приведен пример добавления на карту выпадающего списка.
var listItems = [
new ymaps.control.ListBoxItem('Москва'),
new ymaps.control.ListBoxItem('Новосибирск'),
new ymaps.control.ListBoxItem('Нью-Йорк')
],
myListBox = new ymaps.control.ListBox({
data: {
content: 'Выбрать город'
},
items: listItems
});
myMap.controls.add(myListBox);
Взаимодействие выпадающего меню с картой необходимо запрограммировать самостоятельно. В примере показано, как настроить центрирование карты по выбранному элементу из списка.