This documentation is for OpenLayers v
10.6.1. The
latestis v
.
ol/source/Vector~VectorSourceimport VectorSource from 'ol/source/Vector.js';
Provides a source of features for vector layers. Vector features provided by this source are suitable for editing. See VectorTile
for vector data that is optimized for rendering.
attributions
AttributionLike | undefined
Attributions.
features
Array.<FeatureType> | Collection<FeatureType> | undefined
Features. If provided as Collection
, the features in the source and the collection will stay in sync.
format
FeatureFormat<FeatureType> | undefined
The feature format used by the XHR feature loader when url
is set. Required if url
is set, otherwise ignored.
loader
FeatureLoader<FeatureType> | undefined
The loader function used to load features, from a remote source for example. If this is not set and url
is set, the source will create and use an XHR feature loader. The 'featuresloadend'
and 'featuresloaderror'
events will only fire if the success
and failure
callbacks are used.
Example:
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 (defaults to true)
This source may have overlapping geometries. Setting this to false
(e.g. for sources with polygons that represent administrative boundaries or TopoJSON sources) allows the renderer to optimise fill and stroke operations.
strategy
LoadingStrategy | undefined
The loading strategy to use. By default an all
strategy is used, a one-off strategy which loads all features at once.
url
string | FeatureUrlFunction | undefined
Setting this option instructs the source to load features using an XHR loader (see xhr
). Use a string
and an all
for a one-off download of all features from the given URL. Use a FeatureUrlFunction
to generate the url with other loading strategies. Requires format
to be set as well. When default XHR feature loader is provided, the features will be transformed from the data projection to the view projection during parsing. If your remote data source does not advertise its projection properly, this transformation will be incorrect. For some formats, the default projection (usually EPSG:4326) can be overridden by setting the dataProjection constructor option on the format. Note that if a source contains non-feature data, such as a GeoJSON geometry or a KML NetworkLink, these will be ignored. Use a custom loader to load these.
useSpatialIndex
boolean (defaults to true)
By default, an RTree is used as spatial index. When features are removed and added frequently, and the total number of features is low, setting this to false
may improve performance.
Note that getFeaturesInExtent
, getClosestFeatureToCoordinate
and getExtent
cannot be used when useSpatialIndex
is set to false
, and forEachFeatureInExtent
will loop through all features.
When set to false
, the features will be maintained in an Collection
, which can be retrieved through getFeaturesCollection
.
wrapX
boolean (defaults to true)
Wrap the world horizontally. For vector editing across the -180° and 180° meridians to work properly, this should be set to false
. The resulting geometry coordinates will then exceed the world bounds.
addfeature
(VectorSourceEvent) - Triggered when a feature is added to the source.change
(BaseEvent) - Generic change event. Triggered when the revision counter is increased.changefeature
(VectorSourceEvent) - Triggered when a feature is updated.clear
(VectorSourceEvent) - Triggered when the clear method is called on the source.error
(BaseEvent) - Generic error event. Triggered when an error occurs.featuresloadend
(VectorSourceEvent) - Triggered when features finishes loading.featuresloaderror
(VectorSourceEvent) - Triggered if feature loading results in an error.featuresloadstart
(VectorSourceEvent) - Triggered when features starts loading.propertychange
(ObjectEvent) - Triggered when a property is changed.removefeature
(VectorSourceEvent) - Triggered when a feature is removed from the source. See source.clear()
for exceptions.Add a single feature to the source. If you want to add a batch of features at once, call #addFeatures()
instead. A feature will not be added to the source if feature with the same id is already there. The reason for this behavior is to avoid feature duplication when using bbox or tile loading strategies. Note: this also applies if a Collection
is used for features, meaning that if a feature with a duplicate id is added in the collection, it will be removed from it right away.
feature
FeatureType
Feature to add.
Add a batch of features to the source.
Name Type Descriptionfeatures
Array.<FeatureType>
Features to add.
Increases the revision counter and dispatches a 'change' event.
Remove all features from the source.
Name Type Descriptionfast
boolean | undefined
Skip dispatching of removefeature
events.
Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a type
property.
event
BaseEvent | string
Event object.
false
if anyone called preventDefault on the event object or if any of the listeners returned false.
Iterate through all features on the source, calling the provided callback with each one. If the callback returns any "truthy" value, iteration will stop and the function will return the same value. Note: this function only iterate through the feature that have a defined geometry.
Name Type Descriptioncallback
function
Called with each feature on the source. Return a truthy value to stop iteration.
Iterate through all features whose bounding box intersects the provided extent (note that the feature's geometry may not intersect the extent), calling the callback with each feature. If the callback returns a "truthy" value, iteration will stop and the function will return the same value.
If you are interested in features whose geometry intersects an extent, call the #forEachFeatureIntersectingExtent()
method instead.
When useSpatialIndex
is set to false, this method will loop through all features, equivalent to #forEachFeature()
.
extent
Extent
Extent.
callback
function
Called with each feature whose bounding box intersects the provided extent.
Iterate through all features whose geometry intersects the provided extent, calling the callback with each feature. If the callback returns a "truthy" value, iteration will stop and the function will return the same value.
If you only want to test for bounding box intersection, call the #forEachFeatureInExtent()
method instead.
extent
Extent
Extent.
callback
function
Called with each feature whose geometry intersects the provided extent.
Gets a value.
Name Type Descriptionkey
string
Key name.
Get the attribution function for the source.
Get the closest feature to the provided coordinate.
This method is not available when the source is configured with useSpatialIndex
set to false
and the features in this source are of type Feature
.
coordinate
Coordinate
Coordinate.
filter
function | undefined
Feature filter function. The filter function will receive one argument, the feature
and it should return a boolean value. By default, no filtering is made.
null
if none found).
Get the extent of the features currently in the source.
This method is not available when the source is configured with useSpatialIndex
set to false
.
extent
Extent | undefined
Destination extent. If provided, no new extent will be created. Instead, that extent's coordinates will be overwritten.
Get a feature by its identifier (the value returned by feature.getId()). When RenderFeature
s are used, getFeatureById()
can return an array of RenderFeature
s. This allows for handling of GeometryCollection
geometries, where format readers create one RenderFeature
per GeometryCollection
member. Note that the index treats string and numeric identifiers as the same. So source.getFeatureById(2)
will return a feature with id '2'
or 2
.
id
string | number
Feature identifier.
null
if not found).
Get a snapshot of the features currently on the source in random order. The returned array is a copy, the features are references to the features in the source.
Get all features whose geometry intersects the provided coordinate.
Name Type Descriptioncoordinate
Coordinate
Coordinate.
Get the features collection associated with this source. Will be null
unless the source was configured with useSpatialIndex
set to false
, or with a Collection
as features
.
Get all features whose bounding box intersects the provided extent. Note that this returns an array of all features intersecting the given extent in random order (so it may include features whose geometries do not intersect the extent).
When useSpatialIndex
is set to false, this method will return all features.
extent
Extent
Extent.
projection
Projection | undefined
Include features where extent
exceeds the x-axis bounds of projection
and wraps around the world.
Get the format associated with this source.
Get a list of object property names.
Get the projection of the source.
Get an object of all property names and values.
Get the version number for this object. Each time the object is modified, its version number will be incremented.
Get the state of the source, see State
for possible states.
Get the url associated with this source.
Returns true if the feature is contained within the source.
Name Type Descriptionfeature
FeatureType
Feature.
Listen for a certain type of event.
Name Type Descriptiontype
string | Array.<string>
The event type or array of event types.
listener
function
The listener function.
Listen once for a certain type of event.
Name Type Descriptiontype
string | Array.<string>
The event type or array of event types.
listener
function
The listener function.
Remove a single feature from the source. If you want to batch remove features, use the #removeFeatures()
method instead.
feature
FeatureType
Feature to remove.
Batch remove features from the source. If you want to remove all features at once, use the #clear()
method instead.
features
Array.<FeatureType>
Features to remove.
Remove an extent from the list of loaded extents.
Name Type Descriptionextent
Extent
Extent.
Sets a value.
Name Type Descriptionkey
string
Key name.
value
*
Value.
silent
boolean | undefined
Update without triggering an event.
Set the attributions of the source.
Name Type Descriptionattributions
AttributionLike | undefined
Attributions. Can be passed as string
, Array<string>
, Attribution
, or undefined
.
Set the new loader of the source. The next render cycle will use the new loader.
Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).
Name Type Descriptionvalues
Object.<string, *>
Values.
silent
boolean | undefined
Update without triggering an event.
Points the source to a new url. The next render cycle will use the new url.
Unlisten for a certain type of event.
Name Type Descriptiontype
string | Array.<string>
The event type or array of event types.
listener
function
The listener function.
Unsets a property.
Name Type Descriptionkey
string
Key name.
silent
boolean | undefined
Unset without triggering an event.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4