Spec-Zone.ru › OpenLayers

ol/source/Vector~VectorSource


import VectorSource from 'ol/source/Vector.js';

Предоставляет источник объектов для векторных слоёв. Векторные объекты из этого источника подходят для редактирования. См. VectorTile для векторных данных, оптимизированных для отображения.

new VectorSource(options)

source/Vector.js, строка 179
Имя Тип Описание
attributions AttributionLike | undefined

Атрибуция.

features Array.<FeatureType> | Collection<FeatureType> | undefined

Объекты. Если они переданы в виде Collection, объекты в источнике и коллекции будут синхронизированы.

format FeatureFormat<FeatureType> | undefined

Формат объектов, используемый загрузчиком объектов XHR, если задано url. Обязателен, если задано url, в противном случае игнорируется.

loader FeatureLoader<FeatureType> | undefined

Функция-загрузчик объектов, например из удалённого источника. Если она не задана, а url задано, источник создаст и использует загрузчик объектов XHR. События 'featuresloadend' и 'featuresloaderror' будут срабатывать только при использовании обратных вызовов success и failure.

Пример:

import Vector from 'ol/source/Vector.js';
import GeoJSON from 'ol/format/GeoJSON.js';
import {bbox} from 'ol/loadingstrategy.js';

const vectorSource = new Vector({
  loader: async (extent, resolution, projection) => {
     const url = 'https://ahocevar.com/geoserver/wfs?service=WFS&' +
         'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +
         'outputFormat=application/json' +
         'bbox=' + extent.join(',') + ',' + projection.getCode();
     const response = await fetch(url);
     if (!response.ok) {
       throw new Error('Network response was not ok');
     }
     const json = await response.json();
     const features = new GeoJSON().readFeatures(json, {
       featureProjection: projection,
     });
     return features;
   },
   strategy: bbox,
 });

Чтобы повторить неудачный запрос, используйте

vectorSource.removeLoadedExtent(extent);
vectorSource.changed();
overlaps boolean (по умолчанию true)

Геометрии в этом источнике могут перекрываться. Значение false (например, для источников с полигонами, представляющими административные границы, или для источников TopoJSON) позволяет оптимизировать операции заливки и обводки при отображении.

strategy LoadingStrategy | undefined

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

url string | FeatureUrlFunction | undefined

При задании этого параметра источник загружает объекты с помощью загрузчика XHR (см. xhr). Используйте string и all для однократной загрузки всех объектов по указанному URL. Используйте FeatureUrlFunction, чтобы сформировать URL для других стратегий загрузки. Также необходимо задать format. При использовании загрузчика объектов XHR по умолчанию во время разбора данные преобразуются из проекции данных в проекцию представления. Если удалённый источник данных неправильно указывает свою проекцию, преобразование будет некорректным. Для некоторых форматов проекцию по умолчанию (обычно EPSG:4326) можно переопределить, задав параметр конструктора dataProjection для формата. Обратите внимание: если источник содержит данные, не являющиеся объектами, например геометрию GeoJSON или NetworkLink в KML, они будут проигнорированы. Для их загрузки используйте пользовательский загрузчик.

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

По умолчанию используется пространственный индекс RTree. Если объекты часто удаляются и добавляются, а их общее количество невелико, значение false может повысить производительность.

Обратите внимание: методы getFeaturesInExtent, getClosestFeatureToCoordinate и getExtent нельзя использовать, если для useSpatialIndex задано значение false, а метод forEachFeatureInExtent будет перебирать все объекты.

Если задано значение false, объекты хранятся в Collection, которую можно получить с помощью getFeaturesCollection.

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

Зацикливать мир по горизонтали. Чтобы редактирование векторных данных через меридианы −180° и 180° работало правильно, следует задать значение false. В результате координаты геометрии могут выходить за границы мира.

События:
  • addfeature (VectorSourceEvent) — вызывается при добавлении объекта в источник.
  • change (BaseEvent) — общее событие изменения. Вызывается при увеличении счётчика ревизий.
  • changefeature (VectorSourceEvent) — вызывается при обновлении объекта.
  • clear (VectorSourceEvent) — вызывается при вызове метода clear для источника.
  • error (BaseEvent) — общее событие ошибки. Вызывается при возникновении ошибки.
  • featuresloadend (VectorSourceEvent) — вызывается по завершении загрузки объектов.
  • featuresloaderror (VectorSourceEvent) — вызывается, если при загрузке объектов произошла ошибка.
  • featuresloadstart (VectorSourceEvent) — вызывается при начале загрузки объектов.
  • propertychange (ObjectEvent) — вызывается при изменении свойства.
  • removefeature (VectorSourceEvent) — вызывается при удалении объекта из источника. Исключения описаны в разделе source.clear().

Подклассы

  • Cluster

Наследует

  • Source

Методы

addFeature(feature)

source/Vector.js, строка 328

Добавляет один объект feature в источник. Чтобы добавить сразу несколько объектов feature, вместо этого вызовите #addFeatures(). Объект feature не будет добавлен в источник, если там уже есть объект с таким же идентификатором. Это сделано для предотвращения дублирования объектов feature при использовании стратегий загрузки bbox или тайлов. Примечание: это также относится к случаю, когда для объектов feature используется Collection: если в коллекцию добавляется объект feature с повторяющимся идентификатором, он сразу же удаляется из неё.

Имя Тип Описание
feature FeatureType

Объект feature для добавления.

addFeatures(features)

source/Vector.js, строка 426

Добавляет в источник группу объектов feature.

Имя Тип Описание
features Array.<FeatureType>

Объекты feature для добавления.

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

Observable.js, строка 68

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

clear(fast)

source/Vector.js, строка 544

Удаляет все объекты feature из источника.

Имя Тип Описание
fast boolean | undefined

Не отправлять события removefeature.

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

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

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

Имя Тип Описание
event BaseEvent | string

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

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

forEachFeature(callback){T | undefined}

source/Vector.js, строка 591

Перебирает все объекты feature в источнике, вызывая переданную функцию обратного вызова для каждого из них. Если функция обратного вызова возвращает какое-либо «истинное» значение, перебор прекращается, а функция возвращает это же значение. Примечание: эта функция перебирает только объекты feature с заданной геометрией.

Имя Тип Описание
callback function

Вызывается для каждого объекта feature в источнике. Чтобы остановить перебор, верните истинное значение.

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

forEachFeatureInExtent(extent, callback){T | undefined}

source/Vector.js, строка 648

Перебирает все объекты feature, ограничивающие прямоугольники которых пересекаются с заданной областью (обратите внимание, что геометрия объекта feature может не пересекать эту область), вызывая функцию обратного вызова для каждого объекта. Если функция обратного вызова возвращает «истинное» значение, перебор прекращается, а функция возвращает это же значение.

Если вас интересуют объекты feature, геометрия которых пересекает область, вместо этого вызовите метод #forEachFeatureIntersectingExtent().

Если для useSpatialIndex задано значение false, этот метод перебирает все объекты feature, то есть работает так же, как #forEachFeature().

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

Область.

callback function

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

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

forEachFeatureIntersectingExtent(extent, callback){T | undefined}

source/Vector.js, строка 672

Перебирает все объекты feature, геометрия которых пересекает заданную область, вызывая функцию обратного вызова для каждого объекта. Если функция обратного вызова возвращает «истинное» значение, перебор прекращается, а функция возвращает это же значение.

Если нужно проверить только пересечение ограничивающих прямоугольников, вместо этого вызовите метод #forEachFeatureInExtent().

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

Область.

callback function

Вызывается для каждого объекта feature, геометрия которого пересекает заданную область.

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

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

Object.js, строка 136

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

Имя Тип Описание
key string

Имя ключа.

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

getAttributions(){Attribution} унаследовано

source/Source.js, строка 129

Возвращает функцию атрибуции источника.

Возвращает:
Функция атрибуции.

getAttributionsCollapsible(){boolean} унаследовано

source/Source.js, строка 137
Возвращает:
Атрибуции можно сворачивать.

getClosestFeatureToCoordinate(coordinate, filter){FeatureType | null}

source/Vector.js, строка 786

Возвращает ближайший объект feature к заданной координате.

Этот метод недоступен, если источник настроен с useSpatialIndex, равным false, а объекты feature в этом источнике имеют тип Feature.

Имя Тип Описание
coordinate Coordinate

Координата.

filter function | undefined

Функция фильтрации объектов feature. Функция фильтрации получает один аргумент — feature — и должна возвращать логическое значение. По умолчанию фильтрация не выполняется.

Возвращает:
Ближайший объект feature (или null, если он не найден).

getExtent(extent){Extent | null}

source/Vector.js, строка 842

Возвращает область объектов feature, находящихся в источнике в данный момент.

Если источник настроен с useSpatialIndex, равным false, будет возвращено null.

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

Целевая область. Если она указана, новая область создаваться не будет. Вместо этого координаты указанной области будут перезаписаны.

Возвращает:
Область.

getFeatureById(id){FeatureClassOrArrayOfRenderFeatures<FeatureType> | null}

source/Vector.js, строка 858

Возвращает объект feature по его идентификатору (значению, возвращаемому feature.getId()). При использовании RenderFeature метод getFeatureById() может возвращать массив объектов RenderFeature. Это позволяет обрабатывать геометрии GeometryCollection, для которых считыватели форматов создают по одному объекту RenderFeature на каждый элемент GeometryCollection. Обратите внимание, что индекс считает строковые и числовые идентификаторы одинаковыми. Поэтому source.getFeatureById(2) вернёт объект feature с идентификатором '2' или 2.

Имя Тип Описание
id string | number

Идентификатор объекта feature.

Возвращает:
Объект feature (или null, если он не найден).

getFeatures(){Array.<FeatureType>}

source/Vector.js, строка 711

Возвращает снимок объектов feature, находящихся в источнике в данный момент, в случайном порядке. Возвращаемый массив является копией, а объекты feature — ссылками на объекты в источнике.

Возвращает:
Объекты feature.

getFeaturesAtCoordinate(coordinate){Array.<FeatureType>}

source/Vector.js, строка 730

Возвращает все объекты feature, геометрия которых пересекает заданную координату.

Имя Тип Описание
coordinate Coordinate

Координата.

Возвращает:
Объекты feature.

getFeaturesCollection(){Collection<FeatureType> | null}

source/Vector.js, строка 701

Возвращает коллекцию объектов feature, связанную с этим источником. Вернёт null, если источник не был настроен с useSpatialIndex, равным false, или если в качестве features не была указана Collection.

Возвращает:
Коллекция объектов feature.

getFeaturesInExtent(extent, projection){Array.<FeatureType>}

source/Vector.js, строка 753

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

Если для useSpatialIndex задано значение false, этот метод вернёт все объекты feature.

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

Область.

projection Projection | undefined

Включать объекты feature, для которых extent выходит за границы по оси X projection и оборачивается вокруг мира.

Возвращает:
Объекты feature.

getFormat(){FeatureFormat<FeatureType> | null}

source/Vector.js, строка 884

Возвращает формат, связанный с этим источником.

Возвращает:
} Формат объектов feature.

getKeys(){Array.<string>} унаследовано

Object.js, строка 149

Возвращает список имён свойств объекта.

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

getProjection(){Projection | null} унаследовано

source/Source.js, строка 146

Возвращает проекцию источника.

Возвращает:
Проекция.

getProperties(){NoInfer.<Properties>} унаследовано

Object.js, строка 158

Возвращает объект со всеми именами свойств и их значениями.

Возвращает:
Объект.

getRevision(){number} унаследовано

Observable.js, строка 79

Возвращает номер версии этого объекта. При каждом изменении объекта номер его версии увеличивается.

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

getState(){State} унаследовано

source/Source.js, строка 201

Возвращает состояние источника. Возможные состояния см. в разделе State.

Возвращает:
Состояние.

getUrl(){string | FeatureUrlFunction | undefined}

source/Vector.js, строка 901

Возвращает URL, связанный с этим источником.

Возвращает:
URL.

hasFeature(feature){boolean}

source/Vector.js, строка 956

Возвращает true, если объект feature содержится в источнике.

Имя Тип Описание
feature FeatureType

Объект feature.

Возвращает:
Содержит ли источник этот объект feature.

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

Observable.js, строка 152

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

Имя Тип Описание
type string | Array.<string>

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

listener function

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

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

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

Observable.js, строка 164

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

Имя Тип Описание
type string | Array.<string>

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

listener function

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

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

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

source/Source.js, строка 223

Обновляет источник. Источник будет очищен, а данные повторно загружены с сервера.

removeFeature(feature)

source/Vector.js, строка 1115

Удаляет один объект из источника. Если нужно удалить несколько объектов, используйте вместо этого метод #removeFeatures().

Имя Тип Описание
feature FeatureType

Объект для удаления.

removeFeatures(features)

source/Vector.js, строка 1098

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

Имя Тип Описание
features Array.<FeatureType>

Объекты для удаления.

removeLoadedExtent(extent)

source/Vector.js, строка 1076

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

Все ранее загруженные экстенты, пересекающиеся с заданным экстентом, разделяются на оставшиеся непересекающиеся части с помощью getDifference(), после чего эти части повторно добавляются в дерево.

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

Экстент, который нужно пометить как незагруженный.

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

Object.js, строка 218

Задаёт значение.

Имя Тип Описание
key string

Имя ключа.

value *

Значение.

silent boolean | undefined

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

setAttributions(attributions) унаследовано

source/Source.js, строка 234

Задаёт атрибуции источника.

Имя Тип Описание
attributions AttributionLike | undefined

Атрибуции. Можно передать в виде string, Array<string>, Attribution или undefined.

setLoader(loader)

source/Vector.js, строка 1192

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

Имя Тип Описание
loader FeatureLoader

Загрузчик, который нужно задать.

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

Object.js, строка 238

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

Имя Тип Описание
values Partial.<NoInfer.<Properties>>

Значения.

silent boolean | undefined

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

setUrl(url)

source/Vector.js, строка 1201

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

Имя Тип Описание
url string | FeatureUrlFunction

URL.

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

Observable.js, строка 173

Прекращает прослушивание событий указанного типа.

Имя Тип Описание
type string | Array.<string>

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

listener function

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

unset(key, silent) унаследовано

Object.js, строка 262

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

Имя Тип Описание
key string

Имя ключа.

silent boolean | undefined

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

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

Spec-Zone.ru

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