ol/source/Vector~VectorSource
import VectorSource from 'ol/source/Vector.js';
Предоставляет источник объектов для векторных слоёв. Векторные объекты из этого источника подходят для редактирования. См. VectorTile для векторных данных, оптимизированных для отображения.
-
new VectorSource(options)
-
Имя Тип Описание attributionsAttributionLike | undefined Атрибуция.
featuresArray.<FeatureType> | Collection<FeatureType> | undefined Объекты. Если они переданы в виде
Collection, объекты в источнике и коллекции будут синхронизированы.formatFeatureFormat<FeatureType> | undefined Формат объектов, используемый загрузчиком объектов XHR, если задано
url. Обязателен, если заданоurl, в противном случае игнорируется.loaderFeatureLoader<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();
overlapsboolean (по умолчанию true) Геометрии в этом источнике могут перекрываться. Значение
false(например, для источников с полигонами, представляющими административные границы, или для источников TopoJSON) позволяет оптимизировать операции заливки и обводки при отображении.strategyLoadingStrategy | undefined Используемая стратегия загрузки. По умолчанию применяется стратегия
all— одноразовая стратегия, которая загружает все объекты сразу.urlstring | FeatureUrlFunction | undefined При задании этого параметра источник загружает объекты с помощью загрузчика XHR (см.
xhr). Используйтеstringиallдля однократной загрузки всех объектов по указанному URL. ИспользуйтеFeatureUrlFunction, чтобы сформировать URL для других стратегий загрузки. Также необходимо задатьformat. При использовании загрузчика объектов XHR по умолчанию во время разбора данные преобразуются из проекции данных в проекцию представления. Если удалённый источник данных неправильно указывает свою проекцию, преобразование будет некорректным. Для некоторых форматов проекцию по умолчанию (обычно EPSG:4326) можно переопределить, задав параметр конструктора dataProjection для формата. Обратите внимание: если источник содержит данные, не являющиеся объектами, например геометрию GeoJSON или NetworkLink в KML, они будут проигнорированы. Для их загрузки используйте пользовательский загрузчик.useSpatialIndexboolean (по умолчанию true) По умолчанию используется пространственный индекс RTree. Если объекты часто удаляются и добавляются, а их общее количество невелико, значение
falseможет повысить производительность.Обратите внимание: методы
getFeaturesInExtent,getClosestFeatureToCoordinateиgetExtentнельзя использовать, если дляuseSpatialIndexзадано значениеfalse, а методforEachFeatureInExtentбудет перебирать все объекты.Если задано значение
false, объекты хранятся вCollection, которую можно получить с помощьюgetFeaturesCollection.wrapXboolean (по умолчанию 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().
-
Подклассы
Наследует
Методы
-
addFeature(feature)
-
Добавляет один объект feature в источник. Чтобы добавить сразу несколько объектов feature, вместо этого вызовите
#addFeatures(). Объект feature не будет добавлен в источник, если там уже есть объект с таким же идентификатором. Это сделано для предотвращения дублирования объектов feature при использовании стратегий загрузки bbox или тайлов. Примечание: это также относится к случаю, когда для объектов feature используетсяCollection: если в коллекцию добавляется объект feature с повторяющимся идентификатором, он сразу же удаляется из неё.Имя Тип Описание featureFeatureType Объект feature для добавления.
-
addFeatures(features)
-
Добавляет в источник группу объектов feature.
Имя Тип Описание featuresArray.<FeatureType> Объекты feature для добавления.
-
changed() унаследовано
-
Увеличивает счётчик версий и отправляет событие 'change'.
-
clear(fast)
-
Удаляет все объекты feature из источника.
Имя Тип Описание fastboolean | undefined Не отправлять события
removefeature. -
dispatchEvent(event){boolean | undefined} унаследовано
-
Отправляет событие и вызывает все обработчики, подписанные на события этого типа. Параметр event может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | string Объект события.
Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если какой-либо из обработчиков вернул false.
-
forEachFeature(callback){T | undefined}
-
Перебирает все объекты feature в источнике, вызывая переданную функцию обратного вызова для каждого из них. Если функция обратного вызова возвращает какое-либо «истинное» значение, перебор прекращается, а функция возвращает это же значение. Примечание: эта функция перебирает только объекты feature с заданной геометрией.
Имя Тип Описание callbackfunction Вызывается для каждого объекта feature в источнике. Чтобы остановить перебор, верните истинное значение.
Возвращает:
Значение, возвращённое при последнем вызове функции обратного вызова.
-
forEachFeatureInExtent(extent, callback){T | undefined}
-
Перебирает все объекты feature, ограничивающие прямоугольники которых пересекаются с заданной областью (обратите внимание, что геометрия объекта feature может не пересекать эту область), вызывая функцию обратного вызова для каждого объекта. Если функция обратного вызова возвращает «истинное» значение, перебор прекращается, а функция возвращает это же значение.
Если вас интересуют объекты feature, геометрия которых пересекает область, вместо этого вызовите метод
#forEachFeatureIntersectingExtent().Если для
useSpatialIndexзадано значение false, этот метод перебирает все объекты feature, то есть работает так же, как#forEachFeature().Имя Тип Описание extentExtent Область.
callbackfunction Вызывается для каждого объекта feature, ограничивающий прямоугольник которого пересекается с заданной областью.
Возвращает:
Значение, возвращённое при последнем вызове функции обратного вызова.
-
forEachFeatureIntersectingExtent(extent, callback){T | undefined}
-
Перебирает все объекты feature, геометрия которых пересекает заданную область, вызывая функцию обратного вызова для каждого объекта. Если функция обратного вызова возвращает «истинное» значение, перебор прекращается, а функция возвращает это же значение.
Если нужно проверить только пересечение ограничивающих прямоугольников, вместо этого вызовите метод
#forEachFeatureInExtent().Имя Тип Описание extentExtent Область.
callbackfunction Вызывается для каждого объекта feature, геометрия которого пересекает заданную область.
Возвращает:
Значение, возвращённое при последнем вызове функции обратного вызова.
-
get(key){*} унаследовано
-
Получает значение.
Имя Тип Описание keystring Имя ключа.
Возвращает:
Значение.
-
getAttributions(){Attribution} унаследовано
-
Возвращает функцию атрибуции источника.
Возвращает:
Функция атрибуции.
-
getAttributionsCollapsible(){boolean} унаследовано
-
Возвращает:
Атрибуции можно сворачивать.
-
getClosestFeatureToCoordinate(coordinate, filter){FeatureType | null}
-
Возвращает ближайший объект feature к заданной координате.
Этот метод недоступен, если источник настроен с
useSpatialIndex, равнымfalse, а объекты feature в этом источнике имеют типFeature.Имя Тип Описание coordinateCoordinate Координата.
filterfunction | undefined Функция фильтрации объектов feature. Функция фильтрации получает один аргумент —
feature— и должна возвращать логическое значение. По умолчанию фильтрация не выполняется.Возвращает:
Ближайший объект feature (илиnull, если он не найден).
-
getExtent(extent){Extent | null}
-
Возвращает область объектов feature, находящихся в источнике в данный момент.
Если источник настроен с
useSpatialIndex, равнымfalse, будет возвращеноnull.Имя Тип Описание extentExtent | undefined Целевая область. Если она указана, новая область создаваться не будет. Вместо этого координаты указанной области будут перезаписаны.
Возвращает:
Область.
-
getFeatureById(id){FeatureClassOrArrayOfRenderFeatures<FeatureType> | null}
-
Возвращает объект feature по его идентификатору (значению, возвращаемому feature.getId()). При использовании
RenderFeatureметодgetFeatureById()может возвращать массив объектовRenderFeature. Это позволяет обрабатывать геометрииGeometryCollection, для которых считыватели форматов создают по одному объектуRenderFeatureна каждый элементGeometryCollection. Обратите внимание, что индекс считает строковые и числовые идентификаторы одинаковыми. Поэтомуsource.getFeatureById(2)вернёт объект feature с идентификатором'2'или2.Имя Тип Описание idstring | number Идентификатор объекта feature.
Возвращает:
Объект feature (илиnull, если он не найден).
-
getFeatures(){Array.<FeatureType>}
-
Возвращает снимок объектов feature, находящихся в источнике в данный момент, в случайном порядке. Возвращаемый массив является копией, а объекты feature — ссылками на объекты в источнике.
Возвращает:
Объекты feature.
-
getFeaturesAtCoordinate(coordinate){Array.<FeatureType>}
-
Возвращает все объекты feature, геометрия которых пересекает заданную координату.
Имя Тип Описание coordinateCoordinate Координата.
Возвращает:
Объекты feature.
-
getFeaturesCollection(){Collection<FeatureType> | null}
-
Возвращает коллекцию объектов feature, связанную с этим источником. Вернёт
null, если источник не был настроен сuseSpatialIndex, равнымfalse, или если в качествеfeaturesне была указанаCollection.Возвращает:
Коллекция объектов feature.
-
getFeaturesInExtent(extent, projection){Array.<FeatureType>}
-
Возвращает все объекты feature, ограничивающие прямоугольники которых пересекаются с заданной областью. Обратите внимание, что возвращается массив всех объектов feature, пересекающих указанную область, в случайном порядке (поэтому в него могут входить объекты, геометрия которых не пересекает область).
Если для
useSpatialIndexзадано значение false, этот метод вернёт все объекты feature.Имя Тип Описание extentExtent Область.
projectionProjection | undefined Включать объекты feature, для которых
extentвыходит за границы по оси Xprojectionи оборачивается вокруг мира.Возвращает:
Объекты feature.
-
getFormat(){FeatureFormat<FeatureType> | null}
-
Возвращает формат, связанный с этим источником.
Возвращает:
} Формат объектов feature.
-
getKeys(){Array.<string>} унаследовано
-
Возвращает список имён свойств объекта.
Возвращает:
Список имён свойств.
-
getProjection(){Projection | null} унаследовано
-
Возвращает проекцию источника.
Возвращает:
Проекция.
-
getProperties(){NoInfer.<Properties>} унаследовано
-
Возвращает объект со всеми именами свойств и их значениями.
Возвращает:
Объект.
-
getRevision(){number} унаследовано
-
Возвращает номер версии этого объекта. При каждом изменении объекта номер его версии увеличивается.
Возвращает:
Номер версии.
-
getState(){State} унаследовано
-
Возвращает состояние источника. Возможные состояния см. в разделе
State.Возвращает:
Состояние.
-
getUrl(){string | FeatureUrlFunction | undefined}
-
Возвращает URL, связанный с этим источником.
Возвращает:
URL.
-
hasFeature(feature){boolean}
-
Возвращает true, если объект feature содержится в источнике.
Имя Тип Описание featureFeatureType Объект feature.
Возвращает:
Содержит ли источник этот объект feature.
-
on(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Подписывается на события указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
once(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Однократно подписывается на события указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
refresh() унаследовано
-
Обновляет источник. Источник будет очищен, а данные повторно загружены с сервера.
-
removeFeature(feature)
-
Удаляет один объект из источника. Если нужно удалить несколько объектов, используйте вместо этого метод
#removeFeatures().Имя Тип Описание featureFeatureType Объект для удаления.
-
removeFeatures(features)
-
Пакетно удаляет объекты из источника. Если нужно удалить все объекты сразу, используйте вместо этого метод
#clear().Имя Тип Описание featuresArray.<FeatureType> Объекты для удаления.
-
removeLoadedExtent(extent)
-
Помечает экстент как незагруженный, сохраняя все загруженные области за его пределами.
Все ранее загруженные экстенты, пересекающиеся с заданным экстентом, разделяются на оставшиеся непересекающиеся части с помощью
getDifference(), после чего эти части повторно добавляются в дерево.Имя Тип Описание extentExtent Экстент, который нужно пометить как незагруженный.
-
set(key, value, silent) унаследовано
-
Задаёт значение.
Имя Тип Описание keystring Имя ключа.
value* Значение.
silentboolean | undefined Обновить без вызова события.
-
setAttributions(attributions) унаследовано
-
Задаёт атрибуции источника.
Имя Тип Описание attributionsAttributionLike | undefined Атрибуции. Можно передать в виде
string,Array<string>,Attributionилиundefined. -
setLoader(loader)
-
Задаёт новый загрузчик источника. В следующем цикле отрисовки будет использоваться новый загрузчик.
Имя Тип Описание loaderFeatureLoader Загрузчик, который нужно задать.
-
setProperties(values, silent) унаследовано
-
Задаёт набор пар «ключ-значение». Обратите внимание, что при этом изменяются существующие свойства и добавляются новые (существующие свойства не удаляются).
Имя Тип Описание valuesPartial.<NoInfer.<Properties>> Значения.
silentboolean | undefined Обновить без вызова события.
-
setUrl(url)
-
Указывает источнику новый URL. В следующем цикле отрисовки будет использоваться новый URL.
Имя Тип Описание urlstring | FeatureUrlFunction URL.
-
un(type, listener) унаследовано
-
Прекращает прослушивание событий указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
-
unset(key, silent) унаследовано
-
Удаляет свойство.
Имя Тип Описание keystring Имя ключа.
silentboolean | 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