geoview-core
    Preparing search index...

    Class WFS

    A class to add WFS layer.

    WFS

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    geoviewLayerId: string

    The unique identifier for the GeoView layer. The value of this attribute is extracted from the mapLayerConfig parameter. If its value is undefined, a unique value is generated.

    geoviewLayerName: string

    The GeoView layer name. The value of this attribute is extracted from the mapLayerConfig parameter. If its value is undefined, a default value is generated.

    hitTolerance: number = AbstractGeoViewLayer.DEFAULT_HIT_TOLERANCE

    The default hit tolerance

    listOfLayerEntryConfig: TypeLayerEntryConfig[] = []

    An array of layer settings. In the schema, this attribute is optional. However, we define it as mandatory and if the configuration does not provide a value, we use an empty array instead of an undefined attribute.

    metadataAccessPath: string

    The GeoView layer metadataAccessPath. The name attribute is optional

    olRootLayer?: BaseLayer

    The OpenLayer root layer representing this GeoView Layer.

    serverDateFragmentsOrder?: TypeDateFragments

    Date format object used to translate server to ISO format and ISO to server format

    DEFAULT_HIT_TOLERANCE: number = 4

    The default hit tolerance the query should be using

    DEFAULT_WAIT_PERIOD_METADATA_WARNING: number = ...

    The default waiting time before showing a warning about the metadata taking a long time to get processed

    DEFAULT_WAIT_SLOW_FETCH_WARNING: number = ...

    The maximum delay to wait before we warn about the features fetch taking a long time

    Methods

    • This method is used to create the layers specified in the listOfLayerEntryConfig attribute inherited from its parent. Normally, it is the second method called in the life cycle of a GeoView layer, the first one being the constructor. Its code is the same for all child classes. It must first validate that the olLayers attribute is null indicating that the method has never been called before for this layer. If this is not the case, an error message must be sent. Then, it calls the abstract method getAdditionalServiceDefinition. For example, when the child is a WFS service, this method executes the GetCapabilities request and saves the result in the metadata attribute of the class. It also process the layer's metadata for each layer in the listOfLayerEntryConfig tree in order to define the missing pieces of the layer's configuration. Layer's configuration can come from the configuration of the GeoView layer or from the information saved by the method #processListOfLayerMetadata, priority being given to the first of the two. When the GeoView layer does not have a service definition, the getAdditionalServiceDefinition method does nothing.

      Finally, the processListOfLayerEntryConfig is called to instantiate each layer identified by the listOfLayerEntryConfig attribute. This method will also register the layers to all layer sets that offer this possibility. For example, if a layer is queryable, it will subscribe to the details-panel and every time the user clicks on the map, the panel will ask the layer to return the descriptive information of all the features in a tolerance radius. This information will be used to populate the details-panel.

      Parameters

      • OptionalabortSignal: AbortSignal

        Abort signal to handle cancelling of fetch.

      Returns Promise<ConfigBaseClass[]>

      A promise of the config base classes created.

    • Protected

      Emits a layer-specific message event with localization support

      Parameters

      • messageKey: string

        The key used to lookup the localized message OR message

      • messageParams: string[] | undefined = []

        Array of parameters to be interpolated into the localized message

      • messageType: SnackbarType = ...

        The message type

      • Optionalnotification: boolean = false

        Whether to show this as a notification. Defaults to false

      Returns void

      this.emitMessage(
      'layers.fetchProgress',
      ['50', '100'],
      messageType: 'error',
      true
      );

      LayerMessageEvent

    • Overrides the creation of the source configuration for the vector layer

      Parameters

      • layerConfig: VectorLayerEntryConfig

        The layer entry configuration.

      • sourceOptions: Options<Feature<Geometry>>

        The source options.

      Returns VectorSource<Feature<Geometry>>

      The source configuration that will be used to create the vector layer.

      When the Data Access Path was undefined, likely because initDataAccessPath wasn't called.

    • Overrides the way the metadata is fetched. Resolves with the Json object or undefined when no metadata is to be expected for a particular layer type.

      Type Parameters

      • T = TypeMetadataWFS

      Parameters

      • OptionalabortSignal: AbortSignal

        Abort signal to handle cancelling of fetch.

      Returns Promise<T>

      A promise with the metadata or undefined when no metadata for the particular layer type.

      When the metadata fetch fails or contains an error.

      When the metadata is empty (no Capabilities).

    • Overrides the way a geoview layer config initializes its layer entries.

      Parameters

      • OptionalabortSignal: AbortSignal

        Abort signal to handle cancelling of fetch.

      Returns Promise<TypeGeoviewLayerConfig>

      A promise resolved once the layer entries have been initialized.

      When the metadata fetch fails or contains an error.

      When the metadata is empty (no Capabilities).

    • Overrides the way the layer metadata is processed.

      Parameters

      • layerConfig: VectorLayerEntryConfig

        The layer entry configuration to process.

      • OptionalabortSignal: AbortSignal

        Abort signal to handle cancelling of fetch.

      Returns Promise<VectorLayerEntryConfig>

      A promise that the layer entry configuration has gotten its metadata processed.

      When the Data Access Path was undefined, likely because initDataAccessPath wasn't called.

    • Creates a configuration object for an WFS Feature layer. This function constructs a TypeWFSLayerConfig object that describes an WFS Feature layer and its associated entry configurations based on the provided parameters.

      Parameters

      • geoviewLayerId: string

        A unique identifier for the GeoView layer.

      • geoviewLayerName: string

        The display name of the GeoView layer.

      • metadataAccessPath: string

        The URL or path to access metadata or feature data.

      • isTimeAware: boolean

        Indicates whether the layer supports time-based filtering.

      • strategy: VectorStrategy

        Indicates the strategy to use to fetch vector data.

      • layerEntries: TypeLayerEntryShell[]

        An array of layer entries objects to be included in the configuration.

      Returns TypeWFSLayerConfig

      The constructed configuration object for the WFS Feature layer.

    • Extracts the preferred output format value for a WFS DescribeFeatureType operation from the parsed WFS capabilities metadata. The method navigates through the ows:OperationsMetadata section of the capabilities document to locate the "DescribeFeatureType" operation and returns the first available output format value.

      Parameters

      • metadata: TypeMetadataWFS

        The parsed WFS capabilities metadata object.

      Returns string

      The detected output format string for the DescribeFeatureType operation, or an empty string if no suitable value is found.

    • Fetches and parses a WFS DescribeFeatureType response from the given URL, automatically selecting the appropriate parsing method (JSON or XML) based on the specified output format.

      Parameters

      • url: string

        The DescribeFeatureType request URL.

      • outputFormat: string

        The expected response format ("application/json" or XML-based MIME type).

      • OptionalabortSignal: AbortSignal

        Optional signal that allows the fetch request to be aborted.

      Returns Promise<TypeOutfields[]>

      A promise resolving to an array of field definitions describing the feature type's properties (including geometry fields).

    • Fetches and parses a WFS DescribeFeatureType response in JSON format. This method is used when the WFS server supports outputFormat=application/json for DescribeFeatureType requests. It extracts and returns the list of feature type properties.

      Parameters

      • url: string

        The DescribeFeatureType request URL.

      • OptionalabortSignal: AbortSignal

        Optional signal to abort the fetch request.

      Returns Promise<TypeOutfields[]>

      A promise resolving to an array of feature type field definitions extracted from the JSON response.

    • Fetches and parses a WFS DescribeFeatureType response in XML format. This method is used for servers that only support XML DescribeFeatureType responses (e.g., GeoServer, MapServer, or QGIS Server without JSON output). It converts the XML schema to JSON and extracts the list of feature properties from the complex type definition.

      Parameters

      • url: string

        The DescribeFeatureType request URL.

      • OptionalabortSignal: AbortSignal

        Optional signal to abort the fetch request.

      Returns Promise<TypeOutfields[]>

      A promise resolving to an array of feature type field definitions extracted from the XML schema.

    • Fetches the metadata for a typical WFS class.

      Parameters

      • url: string

        The url to query the metadata from.

      • OptionalabortSignal: AbortSignal

        Abort signal to handle cancelling of fetch.

      Returns Promise<TypeMetadataWFS | undefined>

      Promise with the metadata when fetched or undefined when capabilities weren't found.

    • Fetches WFS metadata for a given service URL and layer ID, then retrieves the corresponding geometry type from the DescribeFeatureType response. This method performs the following steps:

      1. Normalizes the base service URL.
      2. Fetches WFS capabilities or metadata from the service.
      3. Determines the WFS version and the proper output format for DescribeFeatureType.
      4. Builds and executes the DescribeFeatureType request.
      5. Extracts and returns the geometry type (e.g., "Point", "LineString", "Polygon").

      Parameters

      • url: string

        The full WFS or WMS service URL from which to derive the base endpoint.

      • layerId: string

        The name or identifier of the layer to inspect.

      • OptionalabortSignal: AbortSignal

        Optional signal that allows the request to be aborted.

      Returns Promise<TypeOutfields[]>

      A promise that resolves with the list of fields for the layer.

    • Determines the simplified data type of a specified field from a WFS layer configuration. Extracts the field definition from the layer’s metadata, interprets its WFS type (e.g., xsd:int, xsd:date), and maps it to a normalized internal type ('string', 'number', or 'date').

      Parameters

      • fieldName: string

        The name of the field whose type should be retrieved.

      • layerConfig: OgcWfsLayerEntryConfig

        The WFS layer configuration containing metadata definitions.

      Returns TypeOutfieldsType

      The normalized field type ('string', 'number', or 'date').

    • Initializes a GeoView layer configuration for a WFS layer. This method creates a basic TypeGeoviewLayerConfig using the provided ID, name, and metadata access path URL. It then initializes the layer entries by calling initGeoViewLayerEntries, which may involve fetching metadata or sublayer info.

      Parameters

      • geoviewLayerId: string

        A unique identifier for the layer.

      • geoviewLayerName: string

        The display name of the layer.

      • metadataAccessPath: string

        The full service URL to the layer endpoint.

      Returns Promise<TypeGeoviewLayerConfig>

      A promise that resolves to an initialized GeoView layer configuration with layer entries.

    • Determines whether a given WFS feature type field represents a geometry property. Checks if the field's type string starts with the "gml:" prefix, which indicates a GML geometry type such as gml:PointPropertyType, gml:PolygonPropertyType, etc.

      Parameters

      • field: TypeOutfields

        The feature type field definition to evaluate.

      Returns boolean

      true if the field is a geometry field; otherwise, false.

    • Processes a WFS (Web Feature Service) GeoviewLayerConfig and returns a promise that resolves to an array of ConfigBaseClass layer entry configurations.

      This method:

      1. Creates a Geoview layer configuration using the provided parameters.
      2. Instantiates a layer with that configuration.
      3. Processes the layer configuration and returns the result.

      Parameters

      • geoviewLayerId: string

        The unique identifier for the GeoView layer.

      • geoviewLayerName: string

        The display name for the GeoView layer.

      • url: string

        The URL of the service endpoint.

      • layerIds: string[]

        An array of layer IDs to include in the configuration.

      • isTimeAware: boolean

        Indicates if the layer is time aware.

      • vectorStrategy: VectorStrategy
      • fetchStylesOnWMS: boolean
      • OptionalcallbackCreateLayerEntryConfig: (wfsEntry: TypeLayerEntryShell) => TypeLayerEntryShell

      Returns Promise<ConfigBaseClass[]>

      A promise that resolves to an array of layer configurations.