ol/Map~Map
import Map from 'ol/Map.js';
Карта — это основной компонент OpenLayers. Для отображения карты необходимы представление, один или несколько слоёв и целевой контейнер:
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import OSM from 'ol/source/OSM.js';
const map = new Map({
view: new View({
center: [0, 0],
zoom: 1,
}),
layers: [
new TileLayer({
source: new OSM(),
}),
],
target: 'map',
});
Приведённый выше фрагмент создаёт карту с помощью TileLayer для отображения данных OSM из OSM и выводит её в элемент DOM с идентификатором map.
Конструктор размещает контейнер области просмотра (с именем CSS-класса ol-viewport) в целевом элементе (см. getViewport()), а затем добавляет в область просмотра ещё два элемента: один с именем CSS-класса ol-overlaycontainer-stopevent для элементов управления и некоторых наложений, другой с именем CSS-класса ol-overlaycontainer для остальных наложений (см. параметр stopEvent у Overlay, чтобы узнать, в чём разница). Сама карта размещается в дополнительном элементе внутри области просмотра.
Слои хранятся в виде Collection в группах слоёв. Библиотека предоставляет группу верхнего уровня. К ней обращаются с помощью getLayerGroup и setLayerGroup. Слои, указанные в параметрах, добавляются в эту группу, а addLayer и removeLayer изменяют коллекцию слоёв в группе. getLayers — это вспомогательная функция для getLayerGroup().getLayers(). Обратите внимание, что LayerGroup является подклассом BaseLayer, поэтому слои, указанные в параметрах или добавленные с помощью addLayer, могут быть группами, содержащими другие группы, и так далее.
-
new Map(options)
-
Имя Тип Описание controlsCollection<Control> | Array<Control> | undefined Элементы управления, изначально добавляемые на карту. Если параметр не указан, используется
defaults. В веб-воркере элементы управления по умолчанию не добавляются.pixelRationumber (по умолчанию window.devicePixelRatio) Соотношение физических пикселей и независимых от устройства пикселей (DIP) на устройстве.
interactionsCollection<Interaction> | Array<Interaction> | undefined Взаимодействия, изначально добавляемые на карту. Если параметр не указан, используется
defaults. В веб-воркере взаимодействия по умолчанию не добавляются.keyboardEventTargetHTMLElement | Document | string | undefined Элемент, на котором отслеживаются события клавиатуры. Он определяет, когда срабатывают взаимодействия
KeyboardPanиKeyboardZoom. Например, если для этого параметра задано значениеdocument, взаимодействия с клавиатурой будут срабатывать всегда. Если параметр не указан, библиотека отслеживает события клавиатуры на целевом элементе карты (то есть на предоставленном пользователем div для карты). Если это значение не равноdocument, целевой элемент необходимо сфокусировать, чтобы генерировались события клавиатуры; для этого у целевого элемента должен быть атрибутtabindex.layersArray<BaseLayer> | Collection<BaseLayer> | LayerGroup | undefined Слои. Если параметр не задан, будет отображена карта без слоёв. Обратите внимание, что слои отображаются в указанном порядке. Например, чтобы векторный слой отображался поверх растрового, его нужно указать после растрового слоя.
maxTilesLoadingnumber (по умолчанию 16) Максимальное количество одновременно загружаемых тайлов.
moveTolerancenumber (по умолчанию 1) Минимальное расстояние в пикселях, на которое должен переместиться курсор, чтобы это было распознано как событие перемещения карты, а не как щелчок. Увеличение этого значения может облегчить щелчки по карте.
overlaysCollection<Overlay> | Array<Overlay> | undefined Наложения, изначально добавляемые на карту. По умолчанию наложения не добавляются.
targetHTMLElement | string | HTMLCanvasElement | OffscreenCanvas | undefined Контейнер карты: сам элемент или
idэлемента. Если параметр не указан при создании, для отображения карты необходимо вызватьsetTarget. Если в качестве параметра передан элемент, контейнер может находиться во вторичном документе. Для использования в веб-воркерах или при экспорте карты задайте в качестве целевого объектаOffscreenCanvasилиHTMLCanvasElementс шириной и высотой в физических пикселях; при необходимости умножьте их на масштабный коэффициент, соответствующий соотношению пикселей карты. Для обеспечения доступности (фокусировки и обработки событий клавиатуры при навигации по карте) для элементаtargetнеобходимо правильно настроить атрибутtabindex. Если элементtargetнаходится внутри Shadow DOM, атрибутtabindexнеобходимо задать для хост-элемента пользовательского элемента. Примечание: поддержка CSStransformдля целевого элемента ограничена значениемscale.viewView | Promise<ViewOptions> | undefined Представление карты. Источники слоёв не будут загружаться, если этот параметр не задан при создании или с помощью
setView.Генерируемые события:
-
change(BaseEvent) — общее событие изменения. Срабатывает при увеличении счётчика ревизий. -
change:layerGroup(ObjectEvent) -
change:size(ObjectEvent) -
change:target(ObjectEvent) -
change:view(ObjectEvent) -
click(MapBrowserEvent) — щелчок без перетаскивания. Двойной щелчок вызовет это событие дважды. -
dblclick(MapBrowserEvent) — двойной щелчок без перетаскивания. -
error(BaseEvent) — общее событие ошибки. Срабатывает при возникновении ошибки. -
loadend(MapEvent) — срабатывает после завершения загрузки дополнительных данных карты. -
loadstart(MapEvent) — срабатывает при начале загрузки дополнительных данных карты (тайлов, изображений, объектов). -
moveend(MapEvent) — срабатывает после перемещения карты. -
movestart(MapEvent) — срабатывает при начале перемещения карты. -
pointerdrag(MapBrowserEvent) — срабатывает при перетаскивании указателя. -
pointermove(MapBrowserEvent) — срабатывает при перемещении указателя. Обратите внимание, что на сенсорных устройствах это событие срабатывает при перемещении карты, поэтому оно не совпадает с событием mousemove. -
postcompose(RenderEvent) — срабатывает после объединения слоёв. Если событие отправлено картой, у объекта события не будет задан контекст. Если событие отправлено слоем, у объекта события будет задан контекст. В настоящее время это событие отправляют только слои WebGL. -
postrender(MapEvent) — срабатывает после отображения кадра карты. -
precompose(RenderEvent) — срабатывает перед объединением слоёв. Если событие отправлено картой, у объекта события не будет задан контекст. Если событие отправлено слоем, у объекта события будет задан контекст. В настоящее время это событие отправляют только слои WebGL. -
propertychange(ObjectEvent) — срабатывает при изменении свойства. -
rendercomplete(RenderEvent) — срабатывает по завершении отрисовки, то есть когда загрузка всех источников и тайлов для текущей области просмотра завершена и все тайлы проявились. У объекта события не будет задан контекст. -
singleclick(MapBrowserEvent) — одиночный щелчок без перетаскивания и двойного щелчка. Обратите внимание, что это событие задерживается на 250 мс, чтобы убедиться, что это не двойной щелчок.
-
Наследует
Наблюдаемые свойства
| Имя | Тип | Можно задать | Тип ObjectEvent | Описание |
|---|---|---|---|---|
layerGroup | LayerGroup | да | change:layergroup | Группа слоёв, содержащая слои этой карты. |
size | Size | undefined | да | change:size | Размер карты в пикселях в DOM. |
target | HTMLElement | string | undefined | да | change:target | Элемент или идентификатор элемента, в котором отображается карта. |
view | View | да | change:view | Представление, управляющее этой картой. |
Методы
-
addControl(control)
-
Добавляет указанную панель управления на карту.
Имя Тип Описание controlControl Панель управления.
-
addInteraction(interaction)
-
Добавляет указанное взаимодействие на карту. Чтобы добавить взаимодействие в другое место коллекции, используйте
getInteractions()и доступные методыCollection. Это можно использовать, чтобы остановить распространение события из функции handleEvent. Взаимодействия обрабатывают события в порядке, обратном порядку элементов этой коллекции.Имя Тип Описание interactionInteraction Добавляемое взаимодействие.
-
addLayer(layer)
-
Добавляет указанный слой в верхнюю часть стека слоёв этой карты. Чтобы добавить слой в другое место стека, используйте
getLayers()и доступные методыCollection.Имя Тип Описание layerBaseLayer Слой.
-
addOverlay(overlay)
-
Добавляет указанное наложение на карту.
Имя Тип Описание overlayOverlay Наложение.
-
changed() унаследовано
-
Увеличивает счётчик версий и отправляет событие 'change'.
-
dispatchEvent(event){boolean | undefined} унаследовано
-
Отправляет событие и вызывает все обработчики, подписанные на события этого типа. Параметр event может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | string Объект события.
Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если любой из обработчиков вернул false.
-
forEachFeatureAtPixel(pixel, callback, options){T | undefined}
-
Обнаруживает объекты, пересекающие пиксель в области просмотра, и вызывает функцию обратного вызова для каждого пересекающегося объекта. Слои, участвующие в обнаружении, можно настроить с помощью параметра
layerFilterвoptions. Для полигонов без заливки при проверке попадания используется только обводка. Чтобы обнаруживались пиксели внутри полигона, необходимо применить к нему стиль заливки. Заливка может быть прозрачной.Имя Тип Описание pixelPixel Пиксель.
callbackfunction Функция обратного вызова для объектов. Она будет вызвана с двумя аргументами. Первый аргумент — объект
featureилиrender featureв указанном пикселе, второй —layerэтого объекта; для неуправляемых слоёв он будет равен null. Чтобы остановить обнаружение, функция обратного вызова может вернуть истинное значение.optionsНеобязательные параметры.
Имя Тип Описание layerFilterundefined | function Функция фильтрации слоёв. Функция фильтрации получает один аргумент —
layer-candidate— и должна возвращать логическое значение. Объекты будут проверяться только на тех слоях, которые видимы и для которых эта функция возвращаетtrue. По умолчанию проверяются все видимые слои.hitTolerancenumber (по умолчанию 0) Допуск проверки попадания в CSS-пикселях. Объекты проверяются в пикселях внутри радиуса вокруг указанной позиции.
checkWrappedboolean (по умолчанию true) Проверка обёрнутых геометрий: проверяет наличие обёрнутых геометрий в диапазоне +/- 1 ширины мира. Работает только в проекции, допускающей обёртывание.
Возвращает:
Результат функции обратного вызова: значение, возвращённое при последнем её вызове, либо первое истинное возвращённое значение.
-
get(key){*} унаследовано
-
Получает значение.
Имя Тип Описание keystring Имя ключа.
Возвращает:
Значение.
-
getAllLayers(){Array<Layer>}
-
Получает все слои из всех групп слоёв.
Возвращает:
Слои.
-
getControls(){Collection<Control>}
-
Получает панели управления карты. Изменение этой коллекции изменяет набор панелей управления, связанных с картой.
Возвращает:
Панели управления.
-
getCoordinateFromPixel(pixel){Coordinate}
-
Получает координату для указанного пикселя. Возвращает координату в пользовательской проекции.
Имя Тип Описание pixelPixel Положение пикселя в области просмотра карты.
Возвращает:
Координату для положения пикселя.
-
getEventCoordinate(event){Coordinate}
-
Возвращает координату в пользовательской проекции для события браузера.
Имя Тип Описание eventMouseEvent Событие.
Возвращает:
Координату.
-
getEventPixel(event){Pixel}
-
Возвращает положение пикселя карты для события браузера относительно области просмотра.
Имя Тип Описание eventUIEvent | Object Событие.
Возвращает:
Пиксель.
-
getFeaturesAtPixel(pixel, options){Array<FeatureLike>}
-
Получает все объекты, пересекающие пиксель в области просмотра. Для полигонов без заливки при проверке попадания используется только обводка. Чтобы обнаруживались пиксели внутри полигона, необходимо применить к нему стиль заливки. Заливка может быть прозрачной.
Имя Тип Описание pixelPixel Пиксель.
optionsНеобязательные параметры.
Имя Тип Описание layerFilterundefined | function Функция фильтрации слоёв. Функция фильтрации получает один аргумент —
layer-candidate— и должна возвращать логическое значение. Объекты будут проверяться только на тех слоях, которые видимы и для которых эта функция возвращаетtrue. По умолчанию проверяются все видимые слои.hitTolerancenumber (по умолчанию 0) Допуск проверки попадания в CSS-пикселях. Объекты проверяются в пикселях внутри радиуса вокруг указанной позиции.
checkWrappedboolean (по умолчанию true) Проверка обёрнутых геометрий: проверяет наличие обёрнутых геометрий в диапазоне +/- 1 ширины мира. Работает только в проекции, допускающей обёртывание.
Возвращает:
Обнаруженные объекты или пустой массив, если ничего не найдено.
-
getInteractions(){Collection<Interaction>}
-
Получает взаимодействия карты. Изменение этой коллекции изменяет набор взаимодействий, связанных с картой.
Взаимодействия используются, например, для панорамирования, масштабирования и поворота.
Возвращает:
Взаимодействия.
-
getKeys(){Array.<string>} унаследовано
-
Получает список имён свойств объекта.
Возвращает:
Список имён свойств.
-
getLayerGroup(){LayerGroup}
-
Получает группу слоёв, связанную с этой картой.
Возвращает:
Группу слоёв, содержащую слои этой карты.
-
getLayers(){Collection<BaseLayer>}
-
Получает коллекцию слоёв, связанных с этой картой.
Возвращает:
Слои.
-
getOverlayById(id){Overlay | null}
-
Получает наложение по его идентификатору (значению, возвращаемому overlay.getId()). Обратите внимание, что индекс считает строковые и числовые идентификаторы одинаковыми. Поэтому
map.getOverlayById(2)вернёт наложение с идентификатором'2'или2.Имя Тип Описание idstring | number Идентификатор наложения.
Возвращает:
Наложение.
-
getOverlays(){Collection<Overlay>}
-
Получает наложения карты. Изменение этой коллекции изменяет набор наложений, связанных с картой.
Возвращает:
Наложения.
-
getPixelFromCoordinate(coordinate){Pixel}
-
Получает пиксель для координаты. Метод принимает координату в пользовательской проекции и возвращает соответствующий пиксель.
Имя Тип Описание coordinateCoordinate Координата карты.
Возвращает:
Положение пикселя в области просмотра карты.
-
getPixelRatio(){number}
-
Получает коэффициент пикселей отрисованной карты.
Возвращает:
Коэффициент пикселей.
-
getProperties(){NoInfer.<Properties>} унаследовано
-
Получает объект со всеми именами свойств и их значениями.
Возвращает:
Объект.
-
getRevision(){number} унаследовано
-
Получает номер версии этого объекта. При каждом изменении объекта его номер версии увеличивается.
Возвращает:
Номер версии.
-
getSize(){Size | undefined}
-
Получает размер этой карты.
Возвращает:
Размер карты в пикселях в DOM.
-
getTarget(){HTMLElement | string | undefined}
-
Получает целевой элемент, в котором отрисовывается эта карта. Обратите внимание: метод возвращает значение, заданное в параметре или переданное в setTarget: если это был элемент, возвращается элемент; если строка — возвращается эта строка.
Возвращает:
Элемент или идентификатор элемента, в котором отрисовывается карта.
-
getTargetElement(){HTMLElement}
-
Получает элемент DOM, в котором отрисовывается эта карта. В отличие от
getTargetэтот метод всегда возвращаетElementилиnull, если для карты не задан целевой элемент.Возвращает:
Элемент, в котором отрисовывается карта.
-
getView(){View}
-
Получает представление, связанное с этой картой. Представление управляет такими свойствами, как центр и разрешение.
Возвращает:
Представление, управляющее этой картой.
-
getViewport(){HTMLElement}
-
Получает элемент, служащий областью просмотра карты.
Возвращает:
Область просмотра.
-
hasFeatureAtPixel(pixel, options){boolean}
-
Определяет, пересекаются ли объекты с пикселем в области просмотра. Слои, участвующие в обнаружении, можно настроить с помощью параметра
layerFilter. Для полигонов без заливки при проверке попадания используется только обводка. Чтобы обнаруживались пиксели внутри полигона, необходимо применить к нему стиль заливки. Заливка может быть прозрачной.Имя Тип Описание pixelPixel Пиксель.
optionsНеобязательные параметры.
Имя Тип Описание layerFilterundefined | function Функция фильтрации слоёв. Функция фильтрации получает один аргумент —
layer-candidate— и должна возвращать логическое значение. Объекты будут проверяться только на тех слоях, которые видимы и для которых эта функция возвращаетtrue. По умолчанию проверяются все видимые слои.hitTolerancenumber (по умолчанию 0) Допуск проверки попадания в CSS-пикселях. Объекты проверяются в пикселях внутри радиуса вокруг указанной позиции.
checkWrappedboolean (по умолчанию true) Проверка обёрнутых геометрий: проверяет наличие обёрнутых геометрий в диапазоне +/- 1 ширины мира. Работает только в проекции, допускающей обёртывание.
Возвращает:
Есть ли объект в указанном пикселе?
-
on(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Прослушивает события заданного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если в качестве первого аргумента передан массив типов событий, будет возвращен массив ключей.
-
once(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Однократно прослушивает события заданного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если в качестве первого аргумента передан массив типов событий, будет возвращен массив ключей.
-
removeControl(control){Control | undefined}
-
Удаляет указанный элемент управления с карты.
Имя Тип Описание controlControl Элемент управления.
Возвращает:
Удаленный элемент управления (или undefined, если элемент управления не найден).
-
removeInteraction(interaction){Interaction | undefined}
-
Удаляет указанное взаимодействие с карты.
Имя Тип Описание interactionInteraction Взаимодействие для удаления.
Возвращает:
Удаленное взаимодействие (или undefined, если взаимодействие не найдено).
-
removeLayer(layer){BaseLayer | undefined}
-
Удаляет указанный слой с карты.
Имя Тип Описание layerBaseLayer Слой.
Возвращает:
Удаленный слой (или undefined, если слой не найден).
-
removeOverlay(overlay){Overlay | undefined}
-
Удаляет указанное наложение с карты.
Имя Тип Описание overlayOverlay Наложение.
Возвращает:
Удаленное наложение (или undefined, если наложение не найдено).
-
render()
-
Запрашивает отрисовку карты (в следующем кадре анимации).
-
renderSync()
-
Запрашивает немедленную синхронную отрисовку.
-
set(key, value, silent) унаследовано
-
Задает значение.
Имя Тип Описание keystring Имя ключа.
value* Значение.
silentboolean | undefined Обновить без вызова события.
-
setLayerGroup(layerGroup)
-
Задает группу слоев этой карты.
Имя Тип Описание layerGroupLayerGroup Группа слоев, содержащая слои этой карты.
-
setLayers(layers)
-
Удаляет все существующие слои и добавляет слои на карту.
Имя Тип Описание layersArray<BaseLayer> | Collection<BaseLayer> Слои, которые необходимо добавить на карту.
-
setPixelRatio(pixelRatio)
-
Задает коэффициент пикселей для отрисовываемой карты.
Имя Тип Описание pixelRationumber Коэффициент пикселей.
-
setProperties(values, silent) унаследовано
-
Задает набор пар «ключ-значение». Обратите внимание: существующие свойства изменяются, а новые добавляются (существующие свойства не удаляются).
Имя Тип Описание valuesPartial.<NoInfer.<Properties>> Значения.
silentboolean | undefined Обновить без вызова события.
-
setSize(size)
-
Задает размер этой карты.
Имя Тип Описание sizeSize | undefined Размер карты в пикселях в DOM.
-
setTarget(target)
-
Задает целевой элемент для отрисовки карты. Для обеспечения доступности (фокусировки и обработки событий клавиатуры для навигации по карте) элемент
targetдолжен иметь правильно настроенный атрибутtabindex. Если элементtargetнаходится внутри Shadow DOM, атрибутtabindexдолжен быть задан для хост-элемента пользовательского элемента.Имя Тип Описание targetHTMLElement | string | undefined Элемент или идентификатор элемента, в котором отображается карта.
-
setView(view)
-
Задает вид для этой карты.
Имя Тип Описание viewView | Promise<ViewOptions> | null Вид, управляющий этой картой. Также можно передать промис, который разрешается в параметры для создания вида. Этот вариант позволяет источникам или другим компонентам, загружающим метаданные, связанные с видом, определить его свойства.
-
un(type, listener) унаследовано
-
Прекращает прослушивание событий заданного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
-
unset(key, silent) унаследовано
-
Удаляет свойство.
Имя Тип Описание keystring Имя ключа.
silentboolean | undefined Удалить без вызова события.
-
updateSize()
-
Принудительно пересчитывает размер области просмотра карты. Этот метод следует вызывать, если сторонний код изменяет размер области просмотра карты.
© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html