Store implementation for communicating with an OGC WFS server. This Store uses a Codec to convert the server response to LuciadRIA features. The standard codec assumes a server response in GeoJson format. Replace the codec if you want to support another format.

Set this Store on a FeatureModel to create a feature model which retrieves its data from a WFS server. Typically, you don't need to call the constructor yourself. Instead, use the factory methods createFromURL or createFromCapabilities to create an instance of this store. The following example demonstrates how to set up a WFSFeatureStore to retrieve WFS feature data for a given service url and feature type name:

  WFSFeatureStore.createFromURL("http://sampleservices.luciad.com/wfs", "usrivers")
.then(function(store) {
//Create a model for the store
const model = new FeatureModel(store);
//Create a layer for the model
const layer = new FeatureLayer(model);
//Add the model to the map
map.layerTree.addChild(layer);
});

The above example uses GeoJSON as default exchange format. Here's an example on how to set up the same WFSFeatureStore to decode GML-based data, using a GMLCodec:

  const storePromise = WFSFeatureStore.createFromURL("http://sampleservices.luciad.com/wfs", "usrivers", {
codec: new GMLCodec(),
outputFormat: "text/xml; subtype=gml/3.1.1"
});

If you want to access the WFS server capabilities and explore the service metadata and available data sets, you have to create a WFSCapabilities instance first. You can also use this instance to create a Store afterward:

  WFSCapabilities.fromURL("http://sampleservices.luciad.com/wfs")
.then(function(capabilities) {
//Create a store using the capabilities
const store = WFSFeatureStore.createFromCapabilities(capabilities, "usrivers");
//Create a model for the store
const model = new FeatureModel(store);
//Create a layer for the model
const layer = new FeatureLayer(model);
//Add the model to the map
map.layerTree.addChild(layer);
});

Supported versions

LuciadRIA supports consuming WFS services that support version 1.0, 1.1 and 2.0 of the OGC WFS specification.

Type Parameters

  • TFeature extends Feature = Feature

    Represents the type of Feature instances that are handled by the store. Default type is Feature without restrictions on shape and properties.

Hierarchy

  • WFSFeatureStore

Implements

Constructors

Accessors

  • get bounds(): undefined | Bounds
  • Data bounds as specified by the BBOX parameter from WFS capabilities, if the store is created from WFS capabilities, otherwise undefined.

    Returns undefined | Bounds

    Since

    2023.1

  • get credentials(): boolean
  • Indicates whether credentials should be included with HTTP requests.

    Set this to true if the server requires credentials, like HTTP basic authentication headers or cookies. You should disable credentials if the server is configured to allow cross-origin requests from all domains (Access-Control-Allow-Origin=*). If the server allows CORS requests from all domains, the browser will block all requests where credentials=true.

    Once set, all subsequent HTTP requests will use the newly set value.

    The default value is false.

    Returns boolean

  • set credentials(value): void
  • Parameters

    • value: boolean

    Returns void

  • get requestHeaders(): null | HttpRequestHeaders
  • Headers to send with every HTTP request.

    An object literal that represents the headers to send with every HTTP request. The property names represent HTTP header names, the property values represent the HTTP header values. This property can be set dynamically (post-construction). Once set, all subsequent HTTP requests will use the newly set headers.

    Note that when custom headers are being sent to a server on another domain, the server will have to properly respond to pre-flight CORS requests (an HTTP OPTION request sent by the browser before doing the actual request). The server has to indicate that the header can be used in the actual request, by including it in the pre-flight's Access-Control-Allow-Headers response header.

    The default value is null.

    Returns null | HttpRequestHeaders

  • set requestHeaders(value): void
  • Parameters

    Returns void

  • get requestParameters(): null | HttpRequestParameters
  • Custom request parameters to send along with WFS requests. The object literal can contain simple key/value pairs. Accepted values are strings, numbers and booleans. A ProgrammingError will be thrown if values of another type are used. Values must not be URL encoded.

    Assignments of other values than object literals to requestParameters will throw an Error. Clearing the parameters can be done by assigning null or an empty object literal to requestParameters. In order to trigger a refresh of the visualization on the map use layer.loadingStrategy.queryProvider.invalidate().

    Returns null | HttpRequestParameters

    Since

    2021.0

  • set requestParameters(value): void
  • Parameters

    Returns void

Methods

  • An event that is emitted when the contents of the store changes.

    Parameters

    • event: string

      the "StoreChanged" event.

    • callback: ((...args) => void)

      the callback to be invoked when the contents of the store changes. The callback has 3 parameters:

      • eventType: "add", "update" or "remove"
      • feature: the Feature that was added, updated or removed. In case of the "remove" event type, it may be undefined.
      • id: the identifier of the Feature.
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

      value to use as "this" when executing callback

    Returns Handle

  • Query the store for objects within a spatial extent. This will make an AJAX call to the WFS server. The store invokes Codec.decode to decode the server response, passing the reference that was set in the constructor options WFSFeatureStoreConstructorOptions.reference.

    Parameters

    • Optional bounds: Bounds

      The spatial extent to retrieve features for

    • Optional query: WFSQueryOptions

      An object literal which contains the query-parameters

    • Optional options: QueryOptions

      Object literal containing options for the query method.

    Returns Promise<Cursor<TFeature>>

    a promise for Feature instances corresponding to the server response.

  • Creates a new WFSFeatureStore. This is the recommended method to create a model based on information provided by WFSCapabilities.

    Type Parameters

    Parameters

    • capabilities: WFSCapabilities

      The capabilities of the WFS server.

    • featureTypeName: string

      The name of the WFS feature type to be loaded.

    • Optional options: WFSFeatureStoreCreateOptions

      An object literal which contains the settings for this Store

    Returns WFSFeatureStore<TFeature>

    a WFSFeatureStore for the given parameters.

    Since

    2019.1

  • Creates a new WFSFeatureStore. This is the recommended method to create a store based on a given WFS server URL and feature type name.

    Type Parameters

    Parameters

    • url: string

      The URL of the WFS server.

    • featureTypeName: string

      The name of the WFS feature type to be loaded.

    • Optional options: WFSFeatureStoreCreateOptions

      An object literal which contains the settings for this Store

    Returns Promise<WFSFeatureStore<TFeature>>

    a WFSFeatureStore for the given parameters. The promise is rejected if the store creation fails.

    Since

    2019.1