OptionaladdAdds a Feature to the store.
When the addition is successful, the Store must:
Feature to reflect the ID assigned by the server,
if the Feature's ID was undefined prior to addition. If an ID was already defined,
the Store should respect the provided ID unless overridden by the server.
The Feature to add.
Optionaloptions: anyAn optional object for additional implementation-specific parameters.
Returns the identifier of the Feature on success,
or a promise that resolves to the identifier.
OptionalgetRetrieves a Feature by id from the data provider.
The identifier of the Feature.
Optionaloptions: 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).
OptionalputUpdates an existing Feature in the store, or adds it if it does not already exist.
When the operation is successful, the Store must emit a "StoreChanged" event.
The event should contain:
eventType: "update" if an existing feature is updated, or "add" if a new feature is added.feature: The updated or newly added Feature.id: The identifier of the affected Feature.The implementation of this method may follow the semantics of an HTTP PUT request. This means that if the feature does not already exist in the store, it may be added as a new entry.
The Feature to update or add.
Optionaloptions: anyAn optional object for additional implementation-specific parameters.
Returns the identifier of the Feature on success, or a promise that resolves to the identifier.
Queries the store for objects. This method is not optional.
Optionalquery: 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.
Optionaloptions: 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.
OptionalremoveRemoves a Feature from the store by its ID.
When the removal is successful, the Store must emit a "StoreChanged" event,
which contains an eventType of "remove" and the ID of the removed Feature.
If the Store does not emit the "StoreChanged" event, the map visualization will not reflect the removal of the feature.
The identifier of the Feature to be removed.
Returns true on successful removal, or a promise that resolves to true.
OptionalspatialQueries 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.
Optionalbounds: BoundsThe spatial extent to return features for.
Optionalquery: 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.
Optionaloptions: QueryOptionsAn optional object that can be used in a specific implementation of the method.
A Cursor.
OptionalonAn event that is emitted when the contents of the store change. Stores that perform create, update, or delete operations must implement this event to ensure that changes are communicated properly to listeners.
The "StoreChanged" event.
The callback to be invoked when the contents of the store change. The callback has three parameters:
Optionalcontext: anyAn optional value used as the this context when executing the callback.
Optionaloptions: StoreChangedOptionsAn optional object specifying additional options for the event listener. 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
Optionalcontext: anyvalue to use as "this" when executing callback
Optionaloptions: 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
Storeimplementations 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 LuciadRIAFeatureinstances is left to a Codec. For example, theWFSFeatureStorecan be configured with a dedicatedCodecif 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-Codecis the following (without considering the asynchronous nature of those methods):FeatureModel#querygets called to perform the query on the server side.FeatureModelpasses the query parameters to theStore#querymethod.Storeperforms the query and passes the response value to theCodecfor decoding.Codecreturns theFeatureinstances to theStore, which passes them back to theFeatureModel.Note: Most of the methods in the
StoreAPI are optional. The presence of such an optional method indicates that the store can perform a specific action on a feature. For instance, aStorecan implement thequeryandgetmethods but omit theadd,putandremovemethods. That also affects the functionality of theFeatureModelpaired 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.