Spec-Zone.ru › OpenLayers

ol/View~Вид


import View from 'ol/View.js';

Объект View представляет собой простой 2D-вид карты.

Это объект, с помощью которого изменяется центр, разрешение и поворот карты.

У View есть projection. Проекция определяет систему координат центра, а единицы определяют единицы разрешения (единицы проекции на пиксель). По умолчанию используется проекция Web Mercator (EPSG:3857).

Состояния вида

Вид определяется тремя состояниями: center, resolution и rotation. Каждое состояние имеет соответствующий метод получения и установки, например, getCenter и setCenter для состояния center.

Состояние zoom фактически не сохраняется в виде: все вычисления внутри используют состояние resolution. Тем не менее, доступны методы setZoom и getZoom, а также getResolutionForZoom и getZoomForResolution для переключения между системами.

Ограничения

setCenter, setResolution и setRotation можно использовать для изменения состояний вида, но любые ограничения, определенные в конструкторе, будут применяться по ходу дела.

Объект View может иметь ограничение по разрешению, ограничение по повороту и ограничение по центру.

Ограничение по разрешению обычно ограничивает минимальные/максимальные значения и подстраивается под определенные значения разрешения. Оно определяется следующими параметрами: resolutions, maxResolution, maxZoom и zoomFactor. Если resolutions задан, остальные три параметра игнорируются. Более подробную информацию см. в документации для каждого параметра. По умолчанию вид имеет только ограничения min/max и разрешает промежуточные уровни масштабирования, например, при масштабировании пинцетом.

Ограничение по повороту подстраивается под определенные углы. Оно определяется следующими параметрами: enableRotation и constrainRotation. По умолчанию поворот разрешен, и его значение подстраивается к нулю при приближении к горизонтали.

Ограничение по центру определяется параметром extent. По умолчанию центр вида не ограничен.

Изменение состояния вида

Важно отметить, что setZoom, setResolution, setCenter и setRotation подчиняются вышеупомянутым ограничениям. Таким образом, иногда заранее неизвестно конечное состояние View. Например, вызов setResolution(10) не гарантирует, что getResolution() вернет 10.

Следствием этого является то, что при применении дельты к состоянию вида следует использовать adjustCenter, adjustRotation, adjustZoom и adjustResolution вместо соответствующих методов установки. Это позволит виду выполнить внутренние вычисления. Кроме того, методы adjust* также принимают аргумент anchor, который позволяет указать источник преобразования.

Взаимодействие с видом

Ограничения вида обычно применяются только тогда, когда вид находится в состоянии покоя, то есть никакое взаимодействие или анимация не происходит. Таким образом, если пользователь устанавливает вид в состояние, которое не эквивалентно ограниченному (например, поворачивает вид, когда угол фиксации равен 0), при завершении взаимодействия будет запущена анимация, чтобы вернуть вид в стабильное состояние;

новый View(параметры)

View.js, строка 313
Имя Тип Описание
center Координата | undefined

Начальная центральная точка представления. Если пользовательская проекция не задана, система координат центра задается с помощью параметра projection. Источники слоев не будут загружаться, если этот параметр не задан, но центр можно установить позже с помощью #setCenter.

constrainRotation boolean | number (по умолчанию true)

Ограничение по повороту. false означает отсутствие ограничения. true означает отсутствие ограничения, но привязка к нулю вблизи нуля. Числовое значение ограничивает поворот заданным числом значений. Например, 4 ограничит поворот до 0, 90, 180 и 270 градусов.

enableRotation boolean (по умолчанию true)

Разрешить поворот. Если false, используется ограничение поворота, которое всегда устанавливает поворот в ноль. Параметр constrainRotation не имеет эффекта, если enableRotation равен false.

extent Область | undefined

Область, ограничивающая представление, другими словами, ничего за пределами этой области не будет видно на карте.

constrainOnlyCenter boolean (по умолчанию false)

Если true, ограничение по области будет применяться только к центру представления, а не к всей области.

smoothExtentConstraint boolean (по умолчанию true)

Если true, ограничение по области будет применено плавно, т.е. позволить представлению немного выходить за пределы заданной области extent.

maxResolution number | undefined

Максимальное разрешение, используемое для определения ограничения по разрешению. Оно используется вместе с minResolution (или maxZoom) и zoomFactor. Если не указано, оно вычисляется таким образом, чтобы область валидности проекции умещалась в плитке 256x256 пикселей. Если проекция — это сферический Меркатор (по умолчанию), то maxResolution по умолчанию равно 40075016.68557849 / 256 = 156543.03392804097.

minResolution number | undefined

Минимальное разрешение, используемое для определения ограничения по разрешению. Оно используется вместе с maxResolution (или minZoom) и zoomFactor. Если не указано, оно вычисляется, предполагая 29 уровней масштабирования (с множителем 2). Если проекция — это сферический Меркатор (по умолчанию), то minResolution по умолчанию равно 40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253.

maxZoom number (по умолчанию 28)

Максимальный уровень масштабирования, используемый для определения ограничения по разрешению. Оно используется вместе с minZoom (или maxResolution) и zoomFactor. Обратите внимание, что если также указан minResolution, ему отдаётся приоритет над maxZoom.

minZoom number (по умолчанию 0)

Минимальный уровень масштабирования, используемый для определения ограничения по разрешению. Оно используется вместе с maxZoom (или minResolution) и zoomFactor. Обратите внимание, что если также указан maxResolution, ему отдаётся приоритет над minZoom.

multiWorld boolean (по умолчанию false)

Если false, представление ограничено, чтобы отображалась только одна область мира, и нельзя перемещаться за край. Если true, карта может отображать несколько областей мира на низких уровнях масштабирования. Используется только в том случае, если projection глобальна. Обратите внимание, что если также указан extent, ему отдаётся приоритет.

constrainResolution boolean (по умолчанию false)

Если true, представление всегда будет анимироваться до ближайшего уровня масштабирования после взаимодействия; false означает, что промежуточные уровни масштабирования разрешены.

smoothResolutionConstraint boolean (по умолчанию true)

Если true, значения минимального/максимального разрешения будут применяться плавно, т. е. позволять представлению слегка превышать заданные границы разрешения или масштабирования.

showFullExtent boolean (по умолчанию false)

Разрешить представлению масштабироваться до показа всей настроенной области. По умолчанию, когда представление настроено с областью, пользователи не смогут уменьшить масштаб так, чтобы область просмотра превысила область по обоим измерениям. Это означает, что вся область может быть не видна, если область просмотра выше или шире, чем соотношение сторон настроенной области. Если showFullExtent равен true, пользователь сможет уменьшить масштаб так, что область просмотра превысит высоту или ширину настроенной области, но не обе, что позволит отобразить всю область.

projection Проекция (по умолчанию 'EPSG:3857')

Проекция. По умолчанию — сферический Меркатор.

resolution number | undefined

Начальное разрешение представления. Единицы измерения — projection единиц на пиксель (например, метров на пиксель). Альтернатива установке — установка параметра zoom. Источники слоев не будут загружены, если ни этот, ни zoom не определены, но их можно установить позже с помощью #setZoom или #setResolution.

resolutions Array.<number> | undefined

Разрешения, определяющие уровни масштабирования, если указаны. Индекс в массиве соответствует уровню масштабирования, поэтому значения разрешения должны быть в порядке убывания. Также оно ограничивает разрешение минимальным и максимальным значением. Если установлены, параметры maxResolution, minResolution, minZoom, maxZoom и zoomFactor игнорируются.

rotation number (по умолчанию 0)

Начальный угол поворота представления в радианах (положительный поворот по часовой стрелке, 0 означает север).

zoom number | undefined

Используется только если resolution не определён. Уровень масштабирования, используемый для вычисления начального разрешения представления.

zoomFactor number (по умолчанию 2)

Множитель масштабирования, используемый для вычисления соответствующего разрешения.

padding Array.<number> (по умолчанию [0, 0, 0, 0])

Отступ (в пикселях CSS). Если область просмотра карты частично перекрыта другим содержимым (наложениями) по краям, это значение позволяет сместить центр области просмотра от этого содержимого. Порядок значений — верх, право, низ, слева.

События:
  • change (BaseEvent) — Общее событие изменения. Срабатывает, когда увеличивается счётчик версий.
  • change:center (ObjectEvent)
  • change:resolution (ObjectEvent)
  • change:rotation (ObjectEvent)
  • error (BaseEvent) — Общее событие ошибки. Срабатывает при возникновении ошибки.
  • propertychange (ObjectEvent) — Срабатывает при изменении свойства.

Расширяет

  • BaseObject

Наблюдаемые свойства

Имя Тип Устанавливаемое Тип ObjectEvent Описание
center Coordinate | undefined да change:center

Центр вида.

resolution число | undefined да change:resolution

Разрешение вида.

rotation число да change:rotation

Поворот вида в радианах.

Члены

padding{Массив.<число>} {undefined}

Отступ (в пикселях CSS). Если область просмотра карты частично перекрыта другим содержимым (наложениями) по краям, это значение позволяет сместить центр области просмотра от этого содержимого. Порядок значений в массиве — верх, правая сторона, низ, левая сторона. По умолчанию отступ отсутствует, что эквивалентно [0, 0, 0, 0].

Методы

adjustCenter(deltaCoordinates)

View.js, строка 1545

Добавляет относительные координаты к центру представления. Любые ограничения по области применения.

Имя Тип Описание
deltaCoordinates Координата

Относительное значение для добавления.

adjustResolution(ratio, anchor)

View.js, строка 1572

Умножает разрешение представления на коэффициент, необязательно используя якорную точку. Применяются любые ограничения по разрешению.

Имя Тип Описание
ratio число

Коэффициент, применяемый к разрешению представления.

anchor Координата | undefined

Начальная точка преобразования.

adjustRotation(delta, anchor)

View.js, строка 1619

Добавляет значение к повороту представления, необязательно используя якорную точку. Применяются любые ограничения по повороту.

Имя Тип Описание
delta число

Относительное значение для добавления к повороту масштабирования, в радианах.

anchor Координата | undefined

Центр вращения.

adjustZoom(delta, anchor)

View.js, строка 1608

Добавляет значение к уровню масштабирования представления, необязательно используя якорную точку. Применяются любые ограничения по разрешению.

Имя Тип Описание
delta число

Относительное значение для добавления к уровню масштабирования.

anchor Координата | undefined

Начальная точка преобразования.

animate(var_args)

View.js, строка 587

Анимировать представление. Центр, масштаб (или разрешение) и поворот представления могут быть анимированы для плавных переходов между состояниями представления. Например, чтобы анимировать представление до нового уровня масштабирования:

view.animate({zoom: view.getZoom() + 1});

По умолчанию, анимация длится одну секунду и использует плавную кривую «входящая-выходящая». Вы можете настроить это поведение, включив duration (в миллисекундах) и easing варианты (см. ol/easing).

Чтобы объединить несколько анимаций, вызовите метод с несколькими объектами анимации. Например, сначала изменить масштаб, а затем сдвинуть:

view.animate({zoom: 10}, {center: [0, 0]});

Если вы передадите функцию в качестве последнего аргумента методу animate, она будет вызвана в конце серии анимаций. Обработчик событий будет вызван с true, если серия анимаций завершилась самостоятельно, или с false, если она была отменена.

Анимации отменяются при взаимодействии пользователя (например, перетаскивание карты) или путем вызова view.setCenter(), view.setResolution() или view.setRotation() (или другого метода, который вызывает один из них).

Имя Тип Описание
var_args

Параметры анимации. Несколько анимаций могут быть выполнены последовательно, передав несколько объектов параметров. Для выполнения нескольких анимаций параллельно, вызовите метод несколько раз. В качестве дополнительного аргумента можно указать обратный вызов. Обратный вызов будет вызван с логическим значением, указывающим, завершила ли анимация работу без отмены.

Имя Тип Описание
center Координата | undefined

Центр представления в конце анимации.

zoom число | undefined

Уровень масштабирования представления в конце анимации. Это имеет приоритет над resolution.

resolution число | undefined

Разрешение представления в конце анимации. Если также указано zoom, этот параметр будет проигнорирован.

rotation число | undefined

Поворот представления в конце анимации.

anchor Координата | undefined

Необязательная якорная точка, которая остается фиксированной во время анимации поворота или разрешения.

duration число (по умолчанию 1000)

Длительность анимации в миллисекундах.

easing функция | undefined

Функция плавности, используемая во время анимации (по умолчанию inAndOut). Функция вызывается для каждой кадра с числом, представляющим долю длительности анимации. Функция должна возвращать число от 0 до 1, представляющее прогресс к целевому состоянию.

beginInteraction()

View.js, строка 1835

Уведомляет представление о начале взаимодействия. Состояние представления будет разрешено до стабильного, если это необходимо (в зависимости от его ограничений).

calculateExtent(size){Граница}

View.js, строка 999

Вычисляет границу для текущего состояния представления и переданного размера области.

Имя Тип Описание
size Размер | undefined

Размеры пикселей области, в которую должна вписаться вычисленная граница. По умолчанию используется размер карты, с которой связано представление. Если к представлению подключена карта или несколько карт, укажите желаемый размер области (например, map.getSize()).

Возвращает:
Граница.

cancelAnimations()

View.js, строка 727

Отменить любые текущие анимации.

centerOn(coordinate, size, position)

View.js, строка 1480

Центрирование по координатам и позиции просмотра.

Имя Тип Описание
coordinate Координата

Координата.

size Размер

Размер области в пикселях.

position Пиксель

Позиция просмотра для центрирования.

changed() унаследованно

Observable.js, строка 68

Увеличивает счетчик ревизий и отправляет событие 'change'.

dispatchEvent(event){boolean | undefined} унаследованно

events/Target.js, строка 85

Отправляет событие и вызывает всех слушателей, ожидающих события этого типа. Параметр события может быть строкой или объектом с свойством type.

Имя Тип Описание
event BaseEvent | строка

Объект события.

Возвращает:
false, если кто-то вызвал preventDefault на объекте события или если какой-либо из слушателей вернул false.

endInteraction(duration, resolutionDirection, anchor)

View.js, строка 1849

Уведомляет просмотр, что взаимодействие завершено. Состояние просмотра будет решено до стабильного, если необходимо (в зависимости от ограничений).

Имя Тип Описание
duration число | undefined

Продолжительность анимации в мс.

resolutionDirection число | undefined

Направление масштабирования.

anchor Координата | undefined

Начальная точка преобразования.

fit(geometryOrExtent, options)

View.js, строка 1344

Приспосабливает указанную геометрию или область к заданному размеру карты и границе. Размер — это пиксельные размеры области, в которую нужно поместить область. В большинстве случаев вы хотите использовать размер карты, то есть map.getSize(). Учитывает угол карты.

Имя Тип Описание
geometryOrExtent ПростаяГеометрия | Область

Геометрия или область, к которой нужно приспособить просмотр.

options

Параметры.

Имя Тип Описание
size Размер | undefined

Размер области в пикселях, в которую нужно поместить область. По умолчанию совпадает с размером карты, с которой связан просмотр. Если к просмотру подключена ни одна, ни несколько карт, укажите желаемый размер области (например, map.getSize()).

padding Массив.<число> (по умолчанию [0, 0, 0, 0])

Отступ (в пикселях) для очистки внутри просмотра. Значения в массиве — отступ сверху, справа, снизу и слева.

nearest логическое значение (по умолчанию false)

Если параметр просмотра constrainResolution имеет значение true, найдите ближайшую область, а не самую близкую, которая фактически подходит для просмотра.

minResolution число (по умолчанию 0)

Минимальное разрешение, к которому мы масштабируем.

maxZoom число | undefined

Максимальный уровень масштабирования, к которому мы масштабируем. Если указан minResolution, это свойство игнорируется.

duration число | undefined

Продолжительность анимации в миллисекундах. По умолчанию анимация до целевой области отсутствует.

easing функция | undefined

Функция плавного изменения, используемая во время анимации (по умолчанию inAndOut). Функция вызывается для каждого кадра с числом, представляющим долю продолжительности анимации. Функция должна возвращать число от 0 до 1, представляющее прогресс по направлению к целевому состоянию.

callback функция | undefined

Функция, вызываемая, когда просмотр находится в конечном положении. Функция вызывается с true, если анимационный ряд завершен самостоятельно, или с false, если он был прерван.

get(key){*} унаследованно

Object.js, строка 135

Получение значения.

Имя Тип Описание
key строка

Имя ключа.

Возвращает:
Значение.

getAnimating(){boolean}

View.js, строка 710

Определение, анимируется ли просмотр.

Возвращает:
Просмотр анимируется.

getCenter(){Координата | undefined}

View.js, строка 944

Получение центра просмотра.

Возвращает:
Центр просмотра.

getInteracting(){boolean}

View.js, строка 719

Определение, взаимодействует ли пользователь с просмотром, например, перемещает или масштабирует.

Возвращает:
Взаимодействие с просмотром.

getKeys(){Array.<string>} inherited

Object.js, line 148

Получить список имён свойств объекта.

Возвращаемое значение:
Список имён свойств.

getMaxResolution(){number}

View.js, line 1028

Получить максимальное разрешение представления.

Возвращаемое значение:
Максимальное разрешение представления.

getMaxZoom(){number}

View.js, line 1046

Получить максимальный уровень масштабирования для представления.

Возвращаемое значение:
Максимальный уровень масштабирования.

getMinResolution(){number}

View.js, line 1037

Получить минимальное разрешение представления.

Возвращаемое значение:
Минимальное разрешение представления.

getMinZoom(){number}

View.js, line 1066

Получить минимальный уровень масштабирования для представления.

Возвращаемое значение:
Минимальный уровень масштабирования.

getProjection(){Projection}

View.js, line 1095

Получить проекцию представления.

Возвращаемое значение:
Проекция представления.

getProperties(){Object.<string, *>} inherited

Object.js, line 157

Получить объект со всеми именами свойств и значениями.

Возвращаемое значение:
Объект.

getResolution(){number | undefined}

View.js, line 1105

Получить разрешение представления.

Возвращаемое значение:
Разрешение представления.

getResolutionForExtent(extent, size){number}

View.js, line 1127

Получить разрешение для заданного охвата (в единицах карты) и размера (в пикселях).

Имя Тип Описание
extent Extent

Охват.

size Size | undefined

Размер области в пикселях.

Возвращаемое значение:
Разрешение, при котором указанный охват будет отображаться заданного размера.

getResolutionForZoom(zoom){number}

View.js, line 1312

Получить разрешение для уровня масштабирования.

Имя Тип Описание
zoom number

Уровень масштабирования.

Возвращаемое значение:
Разрешение представления для заданного уровня масштабирования.

getResolutions(){Array.<number> | undefined}

View.js, line 1115

Получить разрешения для представления. Возвращает массив разрешений, переданных в конструктор представления, или undefined, если они не были заданы.

Возвращаемое значение:
Разрешения представления.

getRevision(){number} inherited

Observable.js, line 79

Получить номер версии этого объекта. Каждый раз, когда объект изменяется, его номер версии увеличивается.

Возвращаемое значение:
Номер версии.

getRotation(){number}

View.js, line 1177

Получить поворот представления.

Возвращаемое значение:
Поворот представления в радианах.

getZoom(){number | undefined}

View.js, line 1272

Получить текущий уровень масштабирования. Этот метод может возвращать нецелые значения уровня масштабирования, если представление не ограничивает разрешение или если выполняется взаимодействие или анимация.

Возвращаемое значение:
Уровень масштабирования.

getZoomForResolution(resolution){number | undefined}

View.js, line 1287

Получить уровень масштабирования для разрешения.

Имя Тип Описание
resolution number

Разрешение.

Возвращаемое значение:
Уровень масштабирования для указанного разрешения.

on(type, listener){EventsKey | Array<EventsKey>} inherited

Observable.js, line 152

Прослушивание события определенного типа.

Имя Тип Описание
type строка | Массив.<строка>

Тип события или массив типов событий.

listener функция

Функция-обработчик.

Возвращает:
Уникальный ключ для обработчика. Если вызов выполнен с массивом типов событий в качестве первого аргумента, возвращаемое значение будет массивом ключей.

once(type, listener){EventsKey | Array<EventsKey>} унаследованный

Observable.js, строка 164

Прослушивание события определенного типа один раз.

Имя Тип Описание
type строка | Массив.<строка>

Тип события или массив типов событий.

listener функция

Функция-обработчик.

Возвращает:
Уникальный ключ для обработчика. Если вызов выполнен с массивом типов событий в качестве первого аргумента, возвращаемое значение будет массивом ключей.

set(key, value, silent) унаследованный

Object.js, строка 215

Устанавливает значение.

Имя Тип Описание
key строка

Имя ключа.

value *

Значение.

silent логическое | undefined

Обновить без запуска события.

setCenter(center)

View.js, строка 1649

Устанавливает центр текущего вида. Любые ограничения по области применения.

Имя Тип Описание
center Координата | undefined

Центр вида.

setConstrainResolution(enabled)

View.js, строка 1086

Устанавливает, следует ли виду разрешать промежуточные уровни масштабирования.

Имя Тип Описание
enabled логическое

Ограничивается ли разрешение.

setMaxZoom(zoom)

View.js, строка 1057

Устанавливает новый максимальный уровень масштабирования для вида.

Имя Тип Описание
zoom число

Максимальный уровень масштабирования.

setMinZoom(zoom)

View.js, строка 1077

Устанавливает новый минимальный уровень масштабирования для вида.

Имя Тип Описание
zoom число

Минимальный уровень масштабирования.

setProperties(values, silent) унаследованный

Object.js, строка 235

Устанавливает коллекцию пар ключ-значение. Обратите внимание, что это изменяет любые существующие свойства и добавляет новые (это не удаляет какие-либо существующие свойства).

Имя Тип Описание
values Объект.<строка, *>

Значения.

silent логическое | undefined

Обновить без запуска события.

setResolution(resolution)

View.js, строка 1681

Устанавливает разрешение для этого вида. Любые ограничения по разрешению применяются.

Имя Тип Описание
resolution число | undefined

Разрешение вида.

setRotation(rotation)

View.js, строка 1692

Устанавливает поворот для этого вида. Любые ограничения по повороту применяются.

Имя Тип Описание
rotation число

Поворот вида в радианах.

setZoom(zoom)

View.js, строка 1702

Масштабирование до определенного уровня масштабирования. Любые ограничения по разрешению применяются.

Имя Тип Описание
zoom число

Уровень масштабирования.

un(type, listener) унаследованный

Observable.js, строка 173

Отписаться от определенного типа события.

Имя Тип Описание
type строка | Массив.<строка>

Тип события или массив типов событий.

listener функция

Функция-обработчик.

unset(ключ, безмолвный) унаследованный

Object.js, строка 259

Удаляет свойство.

Имя Тип Описание
key строка

Имя ключа.

silent логическое | undefined

Удалить без срабатывания события.

© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_View-View.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API