Карта
В данном разделе описывается основной класс API карт, который используется для создания и управления картой на странице.
DG.Map
Пример использования
Инициализация карты в элементе div
с id "map", с указанием координат центра и коэффициента
масштабирования:
var map = DG.map('map', {
center: [54.98, 82.89],
zoom: 13
});
Создание
Конструктор |
Описание |
DG.map(
<String>> id,
<Map options>> options? )
|
Инициализирует карту в DOM-узле <div> элемента с указанным id с необязательным
набором опций, которые описаны ниже. |
DG.map(
<HTMLElement> el,
<Map options> options? )
|
Инициализирует карту в переданном DOM-узле <div> элемента с необязательным набором
опций, которые описаны ниже. |
Опции
Опция |
Тип |
По умолчанию |
Описание |
preferCanvas |
Boolean |
false |
Должны ли экземпляры Path
отрисовываться на
Canvas . По умолчанию все экземпляры Path
отрисовываются с помощью SVG рендерера.
|
Опции элементов управления
Опции взаимодействия
Опция |
Тип |
По умолчанию |
Описание |
closePopupOnClick |
Boolean |
true |
Закрывать ли попапы при клике в карту. |
zoomSnap |
Number |
1 |
Всегда приводит уровень масштабирования к значению кратному данному параметру. Приведение
происходит сразу после выполнения fitBounds()
или изменения масштаба "щипком" (pinch-zoom). По умолчанию уровень масштабирования
приводится к ближайшему целому числу; меньшие значения (например, 0.5 или
0.1 ) позволяют более точно управлять приведением масшатаба. Значение 0
говорит о том, что уровень масштабирования не будет приводиться после fitBounds
или изменения масштаба "щипком".
|
zoomDelta |
Number |
1 |
Управляет тем, насколько изменится уровень масштаба после
zoomIn() ,
zoomOut() , нажатия + или
- на клавиатуре или используя
элемент управления масштабом.
Значения меньшие чем 1 (например, 0.5 ) предоставляют большую точность.
|
trackResize |
Boolean |
true |
Обновляется ли карта при изменении размера окна браузера. |
boxZoom |
Boolean |
true |
Может ли масштаб карты быть изменен с помощью box-масштабирования (shift + выделение мышью). |
doubleClickZoom |
Boolean|String |
true |
Разрешено ли увеличивать масштаб карты двойным кликом мыши (удерживание Shift позволяет уменьшать
масштаб). Если передано значение center , карта всегда масштабируется отностиельно центра
просматриваемой области, независимо от положения курсора.
|
dragging |
Boolean |
true |
Разрешено ли перетаскивать карту мышью или тачем. |
geoclicker |
Boolean | Object |
false |
Включено ли геокодирование по клику (геокликер). Если false , тогда при клике в любой объект
карты (улицы, дома, остановки) не будет отображаться информация об этом объекте. Если
в качестве параметра передан объект с опциями, тогда геокликер будет включен. Опции
showPhotos и showBooklet позволяют отключить в балуне организации ссылки на буклеты
и фотографии.
|
projectDetector |
Boolean |
true |
Включает или отключает механизм определения проектов 2ГИС. Проект — это агломерация,
включающая крупный город и ближайшие населённые пункты.
|
tilesCheck |
Boolean |
true |
Возвращается ли карта к предыдущему состоянию, если на целевом уровне
масштабирования нет тайлов.
|
museum |
Boolean |
true |
Будет ли отображаться сообщение о том, что браузер не поддерживается. |
Опции состояния карты
Опция |
Тип |
По умолчанию |
Описание |
center |
LatLng |
undefined |
Начальный географический центр карты. |
zoom |
Number |
undefined |
Начальный уровень масштаба. |
minZoom |
Number |
undefined |
Минимальный уровень масштабируемости карты. Переопределяет свойство minZoom
используемых слоев.
|
maxZoom |
Number |
undefined |
Максимальный уровень масштабируемости карты. Переопределяет свойство maxZoom
используемых слоев.
|
layers |
Layer[] |
[] |
Массив слоев, которые изначально будут добавлены на карту. |
maxBounds |
LatLngBounds |
null |
Если свойство установлено, карта ограничивает область просмотра согласно заданным географическим
границам, "отбрасывая" пользователя назад, если он пытается выйти за пределы установленных границ,
а также не позволяет уменьшить масштаб так, чтобы можно было просмотреть неразрешенные участки
карты. Для установки ограничения динамически, используйте метод
setMaxBounds.
|
renderer |
Renderer |
* |
Метод, который используется для отрисовки векторных слоев на карте.
По умолчанию устанавливается
DG.SVG или
DG.Canvas
в зависимости от поддержки браузером.
|
poi |
Boolean |
true |
Отображать ли точки интереса на карте. |
currentLang |
string |
'' |
Язык пользовательского интерфейса карты (см. Локализация) |
Опции анимации
Опция |
Тип |
По умолчанию |
Описание |
fadeAnimation |
Boolean |
true |
Включена ли анимация затухания тайлов. По умолчанию включена во всех браузерах
поддерживающих CSS3 transitions, кроме Android.
|
markerZoomAnimation |
Boolean |
true |
Включена ли анимация масштабирования маркеров при анимации масштабирования карты,
если выключена, тогда маркеры пропадают во время анимации карты. По умолчанию включена
во всех браузерах поддерживающих CSS3 transitions, кроме Android.
|
transform3DLimit |
Number |
2^23 |
Определяет максимальное значение CSS translation transform. Значение по умолчанию
изменять не стоит, до тех пор пока браузер не начинает позиционировать слои в
неправильном месте после большего смещения в результате panBy .
|
zoomAnimation |
Boolean |
true |
Включена ли анимация масштабирования тайлов. По умолчанию включена во всех браузерах
поддерживающих CSS3 transitions, кроме Android.
|
zoomAnimationThreshold |
Number |
4 |
Порог, начиная с которого будет отключаться анимация масштабирования. |
Опции инерции при перемещении
Опция |
Тип |
По умолчанию |
Описание |
inertia |
Boolean |
* |
Если опция включена, тогда создается эффект инерции при движении карты — при
перетаскивании карта продолжает движение в том же направлении какое-то время. Полезно
для тач-устройств. По умолчанию, эта опция включена везде, за исключением старых
Android-устройств.
|
inertiaDeceleration |
Number |
3000 |
Величина, на которую замедляется движение карты, указывается в пикселях/секунду2. |
inertiaMaxSpeed |
Number |
Infinity |
Максимальная скорость инерционного движения, указывается в пикселях/секунду. |
easeLinearity |
Number |
0.2 |
|
worldCopyJump |
Boolean |
false |
Опция позволяет зациклить просмотр карты с сохранением слоев и маркеров на ней. |
maxBoundsViscosity |
Number |
0.0 |
Если установлено свойство maxBounds , эта опция позволяет контролировать
"прочность" границ при перемещении карты мышью или тачем. Значение по умолчанию
0.0 — позволяет пользователю перемещать карту за ее границы с нормальной
скоростью, чем выше значение, тем меньше будет скорость при пермещении за пределы границы карты.
При значении 0.1 , границы становятся полностью "непроницаемы", предотвращая любое
перемещение карты вне их пределов.
|
Опции навигации клавишами
Опция |
Тип |
По умолчанию |
Описание |
keyboard |
Boolean |
true |
Устанавливает фокус на карту и позволяет перемещаться по карте с помощью
кнопок + /- и стрелок клавиатуры.
|
keyboardPanDelta |
Number |
80 |
Указывает, на сколько пикселей сдвинется карта, при нажатии стрелки на клавиатуре. |
Опции колеса мыши
Опция |
Тип |
По умолчанию |
Описание |
scrollWheelZoom |
Boolean | String |
true |
Можно ли изменять масштаб карты с помощью колеса мыши. Если в качестве параметра
передано значение 'center' , изменение масштаба будет происходить
относительно центра просматриваемой области, вне зависимости от позиции указателя
мыши.
|
wheelDebounceTime |
Number |
40 |
Ограничевает частоту, с которой прокрутка колеса мыши будет отправлять событие на изменение
масштаба (в милисекундах). По умолчанию, пользователь не может изменять масштаб карты
более чем один раз в 40 мс.
|
wheelPxPerZoomLevel |
Number |
50 |
Какое количество пикселей прокрутки (можно определить через
DG.DomEvent.getWheelDelta)
означает изменение на один уровень масштабирования. Меньшие значения
будут изменять масштаб карты, с помощью колеса, быстрей (и наоборот).
|
Опции взаимодействия на тач-устройствах
Опция |
Тип |
По умолчанию |
Описание |
tap |
Boolean |
true |
Активирует поддержку мгновенных тапов (отключение задержки в 200мс в iOS/Android)
и долгих тапов (в этом случае посылается событие contextmenu ).
|
tapTolerance |
Number |
15 |
Максимальное число пикселей, на которое пользователь может сдвинуть свой палец во
время тача, для того, чтобы это событие было воспринято как тап.
|
touchZoom |
Boolean |
* |
Разрешено ли изменять масштаб карты двумя пальцами на тач-устройствах.
Если передано значение 'center' , карта всегда будет масштабироваться
относительно центра просматриваемой области, независимо от того, где на карте произошли
события тача. Активируется в веб-браузерах с тач поддержкой, за исключением устройств со
старой версией Android.
|
bounceAtZoomLimits |
Boolean |
false |
Если true , карта будет возвращаться к допустимому масштабу,
когда пользователь будет пытаться выйти за предельный максимальный/минимальный
масштаб карты с помощью масштабирования пальцами.
|
События
События слоев
Событие |
Данные |
Описание |
layeradd |
LayerEvent |
Вызывается при добавлении нового слоя на карту. |
layerremove |
LayerEvent |
Вызывается при удалении слоя с карты. |
События изменения состояния карты
Событие |
Данные |
Описание |
zoomlevelschange |
Event |
Вызывается, если при добавлении или удалении слоя карты изменилось
количество доступных уровней масштабирования.
|
resize |
Event |
Вызывается при изменении размера карты. |
unload |
Event |
Вызывается при удалении карты c помощью метода remove. |
viewreset |
Event |
Вызывается, когда нужно перерисовать содержимое карты (обычно при
изменении масштаба или загрузке). Полезно при создании дополнительных слоев.
|
load |
Event |
Вызывается при инициализации карты (при первой установке ее центра и масштаба). |
zoomstart |
Event |
Вызывается в начале изменения масштаба (перед анимацией изменения масштаба). |
movestart |
Event |
Вызывается в начале изменения области просмотра карты (например, когда пользователь
начинает перетаскивать карту).
|
zoom |
Event |
Вызывается периодически, в течении любого изменения уровня масштаба,
включая анимации перелета.
|
move |
Event |
Вызывается периодически, во время любого передвижения карты, включая
анимации перелета.
|
zoomend |
Event |
Вызывается после изменения масштаба и анимаций. |
moveend |
Event |
Вызывается при окончании передвижения карты (например, когда пользователь
прекращает перетаскивать карту).
|
projectchange |
ProjectEvent |
Вызывается при перемещении пользователя из одного
проекта 2ГИС в другой.
|
projectleave |
ProjectEvent |
Вызывается при выходе пользователя из текущего
проекта 2ГИС.
|
entranceshow |
Event |
Вызывается при отображении входа в здание. |
entrancehide |
Event |
Вызывается при скрытии входа в здание. |
poihover |
MetaEvent |
Вызывается при наведении курсора мыши на точку интереса. |
poileave |
MetaEvent |
Вызывается, когда курсор мыши покидает область точки интереса. |
langchange |
LangEvent |
Вызывается при изменении языка карты. |
События попапа
Событие |
Данные |
Описание |
autopanstart |
|
Вызывается, когда карта начинает двигаться после появления попапа. |
События взаимодействий
События |
Данные |
Описание |
click |
MouseEvent |
Вызывается при клике (или тапе) по карте. |
dblclick |
MouseEvent |
Вызывается при двойном клике (или двойном тапе) по карте. |
mousedown |
MouseEvent |
Вызывается при нажатии кнопки мыши над областью карты. |
mouseup |
MouseEvent |
Вызывается, когда пользователь отпускает кнопку мыши над областью карты. |
mouseover |
MouseEvent |
Вызывается при наведении курсора мыши на карту. |
mouseout |
MouseEvent |
Вызывается, когда курсор мыши покидает область карты. |
mousemove |
MouseEvent |
Вызывается, когда курсор мыши перемещается над картой. |
keypress |
Event |
Вызывается при нажатии клавиш на клавиатуре, когда карта находится в фокусе. |
preclick |
MouseEvent |
Вызывается перед кликом мыши на карте (полезно, если нужно выполнить
какое-либо действие до вызова обработчика клика).
|
События анимаций
Событие |
Данные |
Описание |
zoomanim |
ZoomAnimEvent |
Вызывается каждый кадр, в процессе изменения масштаба. |
События местоположения
Событие |
Данные |
Описание |
locationerror |
ErrorEvent |
Вызывается при возникновении ошибок, во время обнаружения местоположения пользователя
(при использовании метода locate ).
|
locationfound |
LocationEvent |
Вызывается при успешном обнаружении местоположения пользователя (при использовании метода
locate).
|
Методы
Метод |
Возвращает |
Описание |
getRenderer(
<Path> layer)
|
Renderer |
Возвращает экземпляр Renderer ,
который должен быть использован для отрисовки необходимого
векторного слоя . Метод гарантирует, что опции
движка отображения карты и векторных слоев
будут учитываться, и что необходимые движки отображения действительно существуют на карте.
|
Методы слоев и элементов управления
Метод |
Возвращает |
Описание |
addLayer(
<Layer> layer)
|
this |
Добавляет слой на карту. |
removeLayer(
<Layer> layer)
|
this |
Удаляет указанные слои с карты. |
hasLayer(
<Layer> layer)
|
Boolean |
Возвращает true , если слой, на данный момент, добавлен на карту. |
eachLayer(
<Function> fn,
<Object> context?)
|
this |
Выполняет заданную функцию для каждого слоя карты. Дополнительно можно
указать контекст выполнения функции.
map.eachLayer(function(layer){
layer.bindPopup('Hello');
});
|
addControl(
<Control> control)
|
this |
Добавляет элемент управления на карту. |
removeControl(
<Control> control)
|
this |
Удаляет элемент управления с карты. |
Методы модификации состояния карты
Метод |
Возвращает |
Описание |
setView(
<LatLnt> center,
<Number> zoom,
<Zoom/Pan options> options?)
|
this |
Устанавливает область просмотра карты (географический центр и масштаб).
Дополнительно можно указать опции анимации.
|
setZoom(
<Number> zoom,
<Zoom/Pan options> options)
|
this |
Устанавливает уровень масштаба. |
zoomIn(
<Number> delta?,
<Zoom options> options?)
|
this |
Увеличивает масштаб карты на величину delta
(по умолчанию zoomDelta ).
|
zoomOut(
<Number> delta?,
<Zoom options> options?)
|
this |
Уменьшает масштаб карты на величину delta
(по умолчанию zoomDelta ).
|
setZoomAround(
<LatLng> latlng,
<Number> zoom,
<Zoom options> options)
|
this |
Масштабирует карту, сохраняя при этом указанную точку в неподвижном состоянии
(например, используется для масштабировании при помощи колесика мыши и двойного клика).
|
setZoomAround(
<Point> offset,
<Number> zoom,
<Zoom options> options)
|
this |
Масштабирует карту, сохраняя при этом указанную точку в пикселях в неподвижном состоянии
(относительно левого верхнего угла).
|
fitBounds(
<LatLngBounds> bounds,
<fitBounds options> options)
|
this |
Устанавливает область просмотра карты так, чтобы она содержала заданные границы,
на максимально возможном уровне масштаба.
|
fitWorld(
<fitBounds options> options?)
|
this |
Устанавливает область просмотра карты так, чтобы та отображала весь мир,
на максимально возможном уровне масштаба.
|
panTo(
<LatLng> latlng,
<Pan options> options?)
|
this |
Передвигает карту к указанному центру.
|
panBy(
<Point> offset)
|
this |
Перемещает карту на заданное количество пикселей (анимировано). |
setMaxBounds(
<Bounds> bounds)
|
this |
Ограничивает область просмотра карты заданными границами (см. опцию
maxBounds).
|
setMinZoom(<Number> zoom) |
this |
Устанавливает нижний предел уровней масштабирования
(см. опцию minZoom).
|
setMaxZoom(<Number> zoom) |
this |
Устанавливает верхний предел уровней масштабирования
(см. опцию maxZoom).
|
panInsideBounds(
<LatLngBounds> bounds,
<Pan options> options?)
|
this |
Перемещает карту в ближайшую область просмотра, лежащую в пределах заданных границ.
Можно контролировать анимацию, передав объект опций вторым параметром.
|
invalidateSize(<Zoom/Pan options> options) |
this |
Обновляет карту при изменении размера ее контейнера. Этот метод необходимо вызывать,
если размер контейнера изменяется динамически (по умолчанию, также будет происходить
анимация переимещения). Если параметр options.pan установлен в false ,
то карта не будет перемещаться. Если параметр options.debounceMoveend установлен в
true , то событие moveend не будет вызываться часто, даже
если метод будет вызываться много раз подряд.
|
invalidateSize(<Boolean> animate) |
this |
Обновляет карту при изменении размера ее контейнера. Этот метод необходимо вызывать,
если размер контейнера изменяется динамически (по умолчанию, также будет происходить
анимация переимещения).
|
stop() |
this |
Останавливает текущие запущенные анимации panTo или flyTo .
|
flyTo(
<LatLng> latlng,
<Number> zoom?,
<Zoom/Pan options> options?)
|
this |
Устанавливает область просмотра карты (гегорафический центр и масштаб), выполняя
плавную анимацию изменения масштаба и перемещения.
|
flyToBounds(
<LatLngBounds> bounds,
<fitBounds options> options?)
|
this |
Устанавливает область просмотра карты с плавной анимацией изменения масштаба и перемещения, как
flyTo , но примнимает в качестве параметра границы, как
fitBounds .
|
setLang( <String> lang ) |
String |
Устанавливает язык карты. В качестве параметра
принимает код языка (например, 'en').
|
Другие методы
Метод |
Возвращает |
Описание |
addHandler(
<String> name,
<Function> HandlerClass)
|
this |
Добавляет новый Handler на карту,
c переданным именем и функцией-конструктором.
|
remove() |
this |
Удаляет карту и все обработчики, связанные с ней. |
createPane(
<String> name,
<HTMLElement> container?)
|
HTMLElement |
Создает новую панель карты с данным именем, если она еще не существует, и затем
возвращает ее. Панель создается как ребенок container ,
или как дочерний элемент главной панели карты, если container не установлен.
|
getPane(<String | HTMLElement> pane) |
HTMLElement |
Возвращает панель карты по ее имени или по ее HTML-элементу |
getPanes() |
Object |
Возвращает объект, содержащий имена всех панелей как ключи и сами панели, как значения
|
getContainer() |
HTMLElement |
Возвращает контейнер карты (HTML-элемент). |
whenReady(
<Function> fn,
<Object> context?)
|
this |
Выполняет функцию fn после инициализации карты (когда установлен
центр и масштаб) и, по крайней мере, одним слоем, или сразу, если она
была инициализирована ранее. Опционально можно передать контекст выполнения.
|
Методы получения состояния карты
Метод |
Возвращает |
Описание |
getCenter() |
LatLng |
Возвращает географический центр области просмотра карты. |
getZoom() |
Number |
Возвращает текущий уровень масштабирования. |
getBounds() |
LatLngBounds |
Возвращает географические прямоугольные границы текущей области просмотра карты. |
getMinZoom() |
Number |
Возвращает минимальный уровень масштабирования карты (если установлена опция
minZoom у карты или любого слоя) или 0 , по умолчанию.
|
getMaxZoom() |
Number |
Возвращает максимальный уровень масштабирования карты (если установлена опция
maxZoom у карты или любого слоя).
|
getBoundsZoom(
<LatLngBounds> bounds,
<Boolean> inside?)
|
Number |
Возвращает максимальный уровень масштабирования, при котором заданные границы полностью
входят в область просмотра. Если опция inside установлена в true ,
тогда метод возвращает минимальный уровень зума, с теми же условиями.
|
getSize() |
Point |
Возвращает текущий размер контейнера карты (в пикселях). |
getPixelBounds() |
Bounds |
Возвращает прямоугольные границы области просмотра карты, спроецированные на пиксельные
координаты (иногда полезно в реализациях слоев и оверлеев).
|
getPixelOrigin() |
Point |
Возвращает спроецированные пиксельные координаты левой верхней точки слоя карты.
Полезно при реализации дополнительных слоев и оверлеев.
|
getPixelWorldBounds(
<Number> zoom?)
|
Bounds |
Возвращает пиксельные координаты границ мира для заданного уровня масштабирования
zoom . Если zoom пропущен, используется текущий уровень масштаба
карты.
|
getLang() |
String |
Возвращает текущий язык карты. |
Методы преобразования
Метод |
Возвращает |
Описание |
getZoomScale(
<Number> toZoom,
<Number> fromZoom)
|
Number |
Возвращает коэффициент масштабирования, который будет применен к переходу с уровня
fromZoom до toZoom . Используется внутри библиотеки в анимациях
изменения масштаба.
|
getScaleZoom(
<Number> scale,
<Number> fromZoom)
|
Number |
Возвращает уровень масштаба, на котором окажется карта, если ее текущий уровень масштабирования
fromZoom и коэффициент масштабирования scale . Метод обратный
getZoomScale .
|
project(
<LatLng> latlng,
<Number> zoom)
|
Point |
Проецирует географические координаты
LatLng
в соответствии с типом проекции карты (CRS), затем масштабирует их в соответствии с
параметром zoom и CRS Transformation
Результат - пиксельные координаты относительно основания CRS.
|
unproject(
<Point> point,
<Number> zoom)
|
LatLng |
Метод обратный project .
|
layerPointToLatLng(
<Point> point)
|
LatLng |
По переданным пиксельным координатам относительно origin pixel
возвращает соответствующие географические координаты (для текущего уровня масштабирования).
|
latLngToLayerPoint(
<LatLng> latlng)
|
Point |
По переданным географическим координатам возвращает соответствующие пиксельные
координаты относительно origin pixel.
|
wrapLatLng(
<LatLng> latlng)
|
LatLng |
Возвращает LatLng , где lat
и lng "зацикливаются" в соответствии с CRS-свойствами wrapLat и
wrapLng , если они выходят за CRS-границы. По умолчанию
это значит, что долгота переносится относительно линии перемены даты. Таким
образом, ее значение всегда будет находиться между -180 и +180 градусами.
|
distance(
<LatLng> latlng1,
<LatLng> latlng2)
|
Number |
Возвращает расстояние между двумя географическими координатами в соответствии
с CRS карты. По умолчанию расстояние измеряется в метрах.
|
containerPointToLayerPoint(
<Point> point)
|
Point |
По переданным пиксельным координатам, относительно контейнера карты, возвращает
соответствующие пиксельные координаты, относительно origin pixel.
|
layerPointToContainerPoint(
<Point> point)
|
Point |
По переданным пиксельным координатам, относительно origin pixel,
возвращает соответствующие пиксельные координаты, относительно контейнера карты.
|
containerPointToLatLng(
<Point> point)
|
Point |
По переданным пиксельным координатам, относительно контейнера карты,
возвращает географические координаты (для текущего уровня масштабирования).
|
latLngToContainerPoint(
<LatLng> latlng)
|
Point |
По переданным географическим координатам, возвращает пиксельные координаты,
относительно контейнера карты.
|
mouseEventToContainerPoint(
<MouseEvent> ev)
|
Point |
По переданному объекту MouseEvent, возвращает пиксельную координату места, где произошло событие,
относительно левого верхнего угла контейнера карты.
|
mouseEventToLayerPoint(
<MouseEvent> ev)
|
Point |
По переданному объекту MouseEvent, возвращает пиксельную координату, где произошло
событие, относительно origin pixel.
|
mouseEventToLatLng(
<MouseEvent> ev)
|
LatLng |
По переданному объекту MouseEvent, возвращает географическую координату, где
произошло событие.
|
Методы геолокации
Метод |
Возвращает |
Описание |
locate(
<Locate options> options?)
|
this |
Пытается определить местоположение пользователя используя
Geolocation API.
При успешном определении вызывается событие locationfound с данными о местоположении,
в случае ошибки будет вызвано событие locationerror . Опционально устанавливает
область просмотра карты согласно местоположению пользователя (или отображает карту
мира, если возникла ошибка геолокации).
Для дополнительной информации см.
опции определения местоположения.
|
stopLocate() |
this |
Останавливает отслеживание местоположения, предварительно инициированное методом
map.locate({watch: true}) , и предотвращает сброс карты, если map.locate
был вызван с ({setView: true}) .
|
Методы, унаследованные от Evented
Методы, унаследованные от Evented, смотрите здесь.
Свойства
Свойства карты включают в себя обработчики взаимодействия, которые позволяют контролировать интерактивное поведение,
подключение и отключение определенных возможностей карты, таких как перетаскивание и масштабирование тачем
(см. методы Handler). Например:
map.doubleClickZoom.disable();
Вы также можете получить доступ к элементам управления картой, которые включены по умолчанию, например,
к элементу управления масштабом:
map.zoomControl.setPosition('topright');
Обработчики
Свойство |
Тип |
Описание |
boxZoom |
Handler |
Обработчик box-масштабирования (shift + выделение мышью). |
doubleClickZoom |
Handler |
Обработчик масштабирования по двойному клику. |
dragging |
Handler |
Обработчик перетаскивания карты (мышью и тачем). |
keyboard |
Handler |
Обработчик навигации с помощью клавиатуры. |
scrollWheelZoom |
Handler |
Обработчик масштабирования по скроллу. |
tap |
Handler |
Обработчики мобильных тач хаков (быстрый тап и удерживание тача). |
touchZoom |
Handler |
Обработчик масштабирования с помощью тача. |
geoclicker |
Handler |
Обработчик геокодирования по клику. |
projectDetector |
Handler |
Обработчик определения проекта 2ГИС. |
zoomControl |
Control.Zoom |
Элемент управления масштабом. |
fullscreenControl |
Control.FullScreen |
Кнопка включения полноэкранного режима. |
rulerControl |
Control.Ruler |
Кнопка включения линейки. |
trafficControl |
Control.Traffic |
Кнопка включения слоя с пробками. |
baseLayer |
TileLayer |
Слой с тайлами 2ГИС, автоматически добавляемый на карту при её создании. |
Панели карты
Панели - это DOM-элементы, которые используются для контроля очередности отображения слоев на карте.
Получить панели можно с помощью методов map.getPane
или map.getPanes
. Новые панели можно создать
с помощью метода map.createPane
. У каждой карты
по умолчанию есть следующий набор панелей, которые отличаются только zIndex.
Панель |
Тип |
Z-index |
Описание |
mapPane |
HTMLElement |
'auto' |
Панель, содержащая в себе все другие панели |
tilePane |
HTMLElement |
2 |
Панель для тайловых слоев |
overlayPane |
HTMLElement |
4 |
Панель для векторных слоев, таких как ломаные и многоугольники. |
shadowPane |
HTMLElement |
5 |
Панель для наложения теней (например, тени от маркеров). |
markerPane |
HTMLElement |
6 |
Панель маркеров. |
Опции определения местоположения
Некоторые методы геолокации объекта Map
принимают параметр
options
. Это обычный JavaScript-объект со следующими опциональными компонентами:
Опция |
Тип |
По умолчанию |
Описание |
watch |
Boolean |
false |
Если true , то местоположение будет отслеживаться постоянно (вместо определения
местоположения один раз) используя W3C метод watchPosition . Можно остановить
отслеживание, вызвав метод map.stopLocate() . |
setView |
Boolean |
false |
Если true , то автоматически устанавливает область просмотра карты в
точку местоположения пользователя, в соответствии с точностью определения.
В случае ошибки поиска, отображаетcя карта мира.
|
maxZoom |
Number |
Infinity |
Задает максимальный уровень масштабирования при автоматическом перемещения карты,
когда включена опция setView .
|
timeout |
Number |
10000 |
Количество миллисекунд ожидания ответа геолокации, перед тем как произойдет вызов
события locationerror .
|
maximumAge |
Number |
0 |
Максимальное время жизни данных о местоположении. Если с момента последнего поиска
прошло меньше времени, чем указанно в данной опции, locate вернет
данные из кэша.
|
enableHighAccuracy |
Boolean |
false |
Включает функцию повышения точности, см.
описание в W3C спецификации.
|
Опции масштабирования
Некоторые методы объекта Map
, которые изменяют масштаб,
принимают параметр options
. Это обычный JavaScript-объект со следующими
необязательными компонентами:
Опция |
Тип |
По умолчанию |
Описание |
animate |
Boolean |
|
Если не указано, то масштабирование будет анимироваться, если точка, относительно
которой происходит масштабирование, находится в пределах просматриваемой области карты.
Если true , всегда будет производиться попытка анимировать масштабирование,
вне зависимости от положения источника масштабирования. Если false ,
то масштабирование будет происходить без анимации.
|
Опции перемещения
Некоторые методы объекта Map
, которые меняют центр карты,
принимают параметр options
. Это обычный JavaScript-объект со следующими
необязательными компонентами:
Опция |
Тип |
По умолчанию |
Описание |
animate |
Boolean |
|
Если true , то перемещения будут анимироваться всегда. Если false ,
перемещения не будут анимироваться при сбросе карты в исходное положение, если она была
передвинута более чем на один экран; перемещения также не будут анимироваться при установке
нового смещения панели карты (за исключением использования метода panBy ).
|
duration |
Number |
0.25 |
Продолжительность анимации перемещения. |
easeLinearity |
Number |
0.25 |
Коэффициент кривизны затухания анимации (третий параметр
Кривой Безье). Значение 1.0 означает
линейную анимацию; чем меньше значение, тем больше кривизна.
|
noMoveStart |
Boolean |
false |
Если true , тогда при перемещении не будет инициироваться событие
movestart (используется внутри библиотеки при реализации
инерции перемещения).
|
Дополнительные опции масштабирования/перемещения
Дополнительные опции наследуются от Zoom options и
Pan options
Опции соответствия границам
Опция |
Тип |
По умолчанию |
Описание |
paddingTopLeft |
Point |
[0, 0] |
Задает отступ от верхнего левого угла контейнера карты, который не должен учитываться
при подстройке центра и масштаба. Удобно использовать, например, если на карте приложения
имеется левая панель и вы не хотите, чтобы при масштабировании под ней скрывались объекты.
|
paddingBottomRight |
Point |
[0, 0] |
То же самое, но для нижнего правого угла карты. |
padding |
Point |
[0, 0] |
Эквивалентно установке и верхнего левого, и нижнего правого отступов в одинаковые значения. |
maxZoom |
Number |
null |
Максимальный возможный уровень зума. |