Spec-Zone.ru › OpenLayers

ol/source/Vector~ИсточникВекторныхДанных


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

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

НовыйИсточникВекторныхДанных(options)

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

Сведения об авторских правах.

features Array.<FeatureType> | Коллекция<FeatureType> | undefined

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

format ФорматОбъектов<FeatureType> | undefined

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

loader ЗагрузчикОбъектов<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({
  format: new GeoJSON(),
  loader: function(extent, resolution, projection, success, failure) {
     const proj = projection.getCode();
     const url = 'https://ahocevar.com/geoserver/wfs?service=WFS&' +
         'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +
         'outputFormat=application/json&srsname=' + proj + '&' +
         'bbox=' + extent.join(',') + ',' + proj;
     const xhr = new XMLHttpRequest();
     xhr.open('GET', url);
     const onError = function() {
       vectorSource.removeLoadedExtent(extent);
       failure();
     }
     xhr.onerror = onError;
     xhr.onload = function() {
       if (xhr.status == 200) {
         const features = vectorSource.getFormat().readFeatures(xhr.responseText);
         vectorSource.addFeatures(features);
         success(features);
       } else {
         onError();
       }
     }
     xhr.send();
   },
   strategy: bbox,
 });
overlaps boolean (по умолчанию true)

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

strategy СтратегияЗагрузки | undefined

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

url string | ФункцияUrlОбъектов | undefined

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

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

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

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

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

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

Оборачивание мира по горизонтали. Для корректной работы редактирования векторных данных через меридианы -180° и 180° это значение должно быть установлено в false. Координаты полученной геометрии будут тогда превышать мировые пределы.

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

Подклассы

  • Кластер

Расширяет

  • Источник

Методы

addFeature(feature)

source/Vector.js, line 337

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

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

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

addFeatures(features)

source/Vector.js, line 435

Добавить пакет объектов в источник.

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

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

changed() inherited

Observable.js, line 68

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

clear(fast)

source/Vector.js, line 553

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

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

Пропустить отправку событий removefeature.

dispatchEvent(event){boolean | undefined} inherited

events/Target.js, line 85

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

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

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

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

forEachFeature(callback){T | undefined}

source/Vector.js, line 600

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

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

Вызывается для каждого объекта в источнике. Верните истинное значение для остановки итерации.

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

forEachFeatureInExtent(extent, callback){T | undefined}

source/Vector.js, line 657

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

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

Когда useSpatialIndex установлено в false, этот метод будет проходить по всем объектам, что эквивалентно #forEachFeature().

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

Прямоугольник.

callback function

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

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

forEachFeatureIntersectingExtent(extent, callback){T | undefined}

source/Vector.js, line 681

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

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

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

Прямоугольник.

callback function

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

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

get(key){*} inherited

Object.js, line 135

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

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

Имя ключа.

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

getAttributions(){Attribution} inherited

source/Source.js, line 129

Получить функцию атрибуции для источника.

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

getAttributionsCollapsible(){boolean} inherited

source/Source.js, line 137
Returns:
Атрибуты сворачиваются.

getClosestFeatureToCoordinate(coordinate, filter){FeatureType}

source/Vector.js, line 795

Получить ближайший объект к указанной координате.

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

Name Type Description
coordinate Coordinate

Координата.

filter function | undefined

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

Returns:
Ближайший объект.

getExtent(extent){Extent}

source/Vector.js, line 851

Получить экстент объектов, в данный момент находящихся в источнике.

Этот метод недоступен, когда источник настроен с параметром useSpatialIndex, установленным в false.

Name Type Description
extent Extent | undefined

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

Returns:
Экстент.

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

source/Vector.js, line 867

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

Name Type Description
id string | number

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

Returns:
Объект (или null, если не найден).

getFeatures(){Array.<FeatureType>}

source/Vector.js, line 720

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

Returns:
Объекты.

getFeaturesAtCoordinate(coordinate){Array.<FeatureType>}

source/Vector.js, line 739

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

Name Type Description
coordinate Coordinate

Координата.

Returns:
Объекты.

getFeaturesCollection(){Collection<FeatureType> | null}

source/Vector.js, line 710

Получить коллекцию объектов, связанную с этим источником. Будет null, если источник не был настроен с параметром useSpatialIndex, установленным в false, или с Collection в качестве features.

Returns:
Коллекция объектов.

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

source/Vector.js, line 762

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

Когда useSpatialIndex установлен в false, этот метод вернет все объекты.

Name Type Description
extent Extent

Экстент.

projection Projection | undefined

Включить объекты, где extent выходит за границы оси x projection и огибает земной шар.

Returns:
Объекты.

getFormat(){FeatureFormat<FeatureType> | null}

source/Vector.js, line 893

Получить формат, связанный с этим источником.

Returns:
} Формат объектов.

getKeys(){Array.<string>} inherited

Object.js, line 148

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

Returns:
Список имен свойств.

getProjection(){Projection | null} inherited

source/Source.js, line 146

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

Returns:
Проекция.

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

Object.js, line 157

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

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

getRevision(){number} inherited

Observable.js, line 79

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

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

getState(){State} inherited

source/Source.js, line 170

Получить состояние источника, см. State для возможных состояний.

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

getUrl(){string | FeatureUrlFunction | undefined}

source/Vector.js, line 910

Получить URL, связанный с этим источником.

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

hasFeature(feature){boolean}

source/Vector.js, line 965

Возвращает true, если функция содержится в источнике.

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

Функция.

Возвращает:
Принадлежит ли функция.

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

Observable.js, line 152

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

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

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

listener function

Функция-прослушиватель.

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

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

Observable.js, line 164

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

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

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

listener function

Функция-прослушиватель.

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

removeFeature(feature)

source/Vector.js, line 1095

Удалить отдельную функцию из источника. Если вы хотите удалить функции группами, используйте метод #removeFeatures() вместо этого.

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

Функция для удаления.

removeFeatures(features)

source/Vector.js, line 1078

Удаление функций из источника группами. Если вы хотите удалить все функции сразу, используйте метод #clear() вместо этого.

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

Функции для удаления.

removeLoadedExtent(extent)

source/Vector.js, line 1059

Удалить область из списка загруженных областей.

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

Область.

set(key, value, silent) inherited

Object.js, line 215

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

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

Имя ключа.

value *

Значение.

silent boolean | undefined

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

setAttributions(attributions) inherited

source/Source.js, line 203

Установите атрибуты источника.

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

Атрибуты. Могут быть переданы как string, Array<string>, Attribution или undefined.

setLoader(loader)

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

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

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

Загрузчик для установки.

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

Object.js, строка 235

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

Имя Тип Описание
values Object.<string, *>

Значения.

silent boolean | undefined

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

setUrl(url)

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

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

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

URL.

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

Observable.js, строка 173

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

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

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

listener function

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

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

Object.js, строка 259

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

Имя Тип Описание
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