Optional
addAdds a Feature
to the store. This method is optional.
When the adding action is successful, the Store
should:
Feature
, which has just been added,
to match the ID on the server side. That ID should also be returned by the method.
Feature
with updated ID, and the ID itself.
Note::
If the Store
does not emit the event, a map will not update the visualization of the feature
if another entity than the map performs updates a feature on the Store.
The Feature
to add.
When successfully added, the ID of the Feature
will be adjusted
to match the ID in the Store
.
Optional
options: anyAn optional object that can be used in a specific implementation of the method.
Returns the identifier of the Feature
on success,
or a promise for that identifier.
Optional
getRetrieves a Feature
by id from the data provider. This method is optional.
The identifier of the Feature
.
Optional
options: anyAn optional object that can be used in a specific implementation of the method.
May return the Feature
, or a promise for the Feature
.
When no feature with that id exists the returned value must be either undefined
(the synchronous case),
or a rejected promise (the asynchronous case).
Optional
putUpdates an existing Feature
in the store. This method is optional.
When the update is successful, the Store
should emit an event which contains the Feature
and the ID of the Feature
.
Note::
If the Store
does not emit the event, a map will not update the visualization of the feature
if another entity than the map updates a feature on the Store.
Put may be implemented with the put-semantics of an HTTP-put.
This means that if the feature does not exist yet in the store, it may be added to the store instead. The corresponding StoreChanged
must correctly reflect the operation: the eventType must be 'update' when an existing element is updated and 'add'
when a new element is added.
The Feature
to update.
Optional
options: anyAn optional object that can be used in a specific implementation of the method.
Returns the identifier of the Feature
on success, or a promise for the identifier.
Queries the store for objects. This method is not optional.
Optional
query: anyAn object which represents a query filter that is understood by the underlying data provider. The structure of this object depends on a specific store implementation.
Optional
options: QueryOptionsAn optional object that can be used in a specific implementation of the method.
A Cursor over a set of Feature
instances or a promise for that Cursor
.
Optional
removeRemoves an object from the store by id. This method is optional.
When the removal is successful, the Store
should emit an event which contains the ID of the removed Feature
.
Note::
If the Store
does not emit the event, a map will not update the visualization of the feature
if another entity than the map removes a feature on the Store.
The identifier of the Feature
.
Returns true on successful removal, or a promise for that value.
Optional
spatialQueries the store for objects within a spatial extent. This method is optional.
Note: LuciadRIA determines the layer's default loading strategy based on the existence of this method in the store. If this method is implemented by store then the default loading strategy is LoadEverything.
Note: In a situation when the map reference and the model reference are incompatible, for example: a Cartesian reference and a geodetic reference, then the layer's LoadEverything.
Note:
WFSFeatureStore implements this method
by creating an OGC BBOX filter based on the bounds
parameter.
Optional
bounds: BoundsThe spatial extent to return features for.
Optional
query: anyAn object which represents a query filter that is understood by the underlying data provider. The structure of this object depends on a specific store implementation.
Optional
options: QueryOptionsAn optional object that can be used in a specific implementation of the method.
A Cursor.
An event that is emitted when the contents of the store changes.
the "StoreChanged" event.
the callback to be invoked when the contents of the store changes. The callback has 3 parameters:
Optional
context: anyvalue to use as "this" when executing callback
Optional
options: StoreChangedOptionsAn options object literal. If a query is specified, the listener function must only be invoked for features that match the query. StoreChanged
Registers an event listener on this store. This method is optional if Store
does not emit events.
Note: although this method is optional, it is strongly recommended to provide support for attaching
listeners to the Store
. The FeatureModel
needs those events to generate ModelChanged
events. So if your Store
does not emit events, the visual representation of the model (e.g. the layer) will
not be automatically updated when a feature is changed in the Store
.
the event
the event listener
Rest
...args: any[]Optional
context: anyvalue to use as "this" when executing callback
Optional
options: StoreChangedOptionsAn options object literal
An object containing a single function named 'remove
'. This can be used to unregister the listener
from this store.
The store object provides the link between the FeatureModel and the data provider. The function of the store is to query the server for data, convert the response of the server to LuciadRIA Feature instances, and to perform optional CRUD operations: get, create, update and delete.
Most of the
Store
implementations separate the communication with a data provider (e.g. a WFS service) from the actual parsing of the server response. The conversion of the server response to LuciadRIAFeature
instances is left to a Codec. For example, theWFSFeatureStore
can be configured with a dedicatedCodec
if your WFS server, which the WFSFeatureStore connects to, does not support GeoJson as an output format.A typical sequence of method calls on a set of a
FeatureModel
-Store
-Codec
is the following (without considering the asynchronous nature of those methods):FeatureModel#query
gets called to perform the query on the server side.FeatureModel
passes the query parameters to theStore#query
method.Store
performs the query and passes the response value to theCodec
for decoding.Codec
returns theFeature
instances to theStore
, which passes them back to theFeatureModel
.Note: Most of the methods in the
Store
API are optional. The presence of such an optional method indicates that the store can perform a specific action on a feature. For instance, aStore
can implement thequery
andget
methods but omit theadd
,put
andremove
methods. That also affects the functionality of theFeatureModel
paired with theStore
, as explained in the documentation of the FeatureModel class.Users of this class should always check whether an optional method is available before calling the method, as illustrated below:
In order to create a custom store that implements the event system, the custom store should implement Evented.