A RasterImageModel that can access an OGC WMS Server. Use this model instead of the WMSTileSetModel if you want to visualize WMS images at an arbitrary scale and with arbitrary extents. For example, if the WMS images contain text, the text may appear smaller on the map than intended when using a WMSTileSetModel. You can avoid this by using this WMSImageModel instead.

Typically, you don't need to call the constructor yourself. Instead, use the factory methods createFromURL or createFromCapabilities to create an instance of this model. The following example demonstrates how to set up a WMSImageModel to retrieve WMS image data for a given service url and layer name:

WMSImageModel.createFromURL("http://sampleservices.luciad.com/wms", [{layer: "rivers"}])
.then(function(model) {
//Create a layer for the WMS model
const layer = new RasterImageLayer(model);
//Add the layer to the map
map.layerTree.addChild(layer);
});

If you want to access the WMS server's capabilities and explore the service metadata and available data sets, you first have to create a WMSCapabilities instance. This instance can also be to create a WMSImageModel afterwards:

const capabilitiesPromise = WMSCapabilities.fromURL("http://sampleservices.luciad.com/wms");
capabilitiesPromise.then(function(capabilities) {
//Create a model using the capabilities
const model = WMSImageModel.createFromCapabilities(capabilities, [{layer: "rivers"}]);
//Create a layer for the WMS model
const layer = new RasterImageLayer(model);
//Add the layer to the map
map.layerTree.addChild(layer);
});

Limitations

The limitations for single-image rasters also apply to this model, cf. RasterImageLayer. Most notably, WebGLMap does not support single-image raster models and layers.

Supported versions

LuciadRIA supports consuming WMS services that support version 1.1.1 and 1.3.0 of the OGC WMS specification.

Since

2015.0

Hierarchy (view full)

Constructors

Accessors

  • get backgroundColor(): null | string
  • The background color the WMS server must use when generating the WMS image. Note that this option is only considered by the server when the WMSImageModel.transparent property is false. The backgroundColor is a string that must be formatted as "0xRRGGBB", where RGB values are represented as hexadecimal values. If you try to assign a string that does not adhere to this format an exception will be thrown.

    Returns null | string

  • set backgroundColor(val): void
  • Parameters

    • val: null | string

    Returns void

  • get bounds(): Bounds
  • The Bounds by which the geometry of this Bounded object is bounded or null if the bounds is not defined.

    Returns Bounds

  • get coordinateType(): CoordinateType
  • The coordinate type of geometries in this model

    Returns CoordinateType

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

    See GoogleImageModel.credentials for more information.

    The default value is false.

    Returns boolean

  • set credentials(value): void
  • Parameters

    • value: boolean

    Returns void

  • get dimensions(): null | object
  • Dimension parameters to send along with WMS GetMap and GetFeatureInfo request. Typical dimensions are TIME and ELEVATION.

    The object literal can contain simple key/value pairs. Dimension names will be prefixed with "DIM_" in the WMS requests, if this is not already the case. The dimension names TIME and ELEVATION will never be prefixed. Accepted values are strings, numbers, booleans. A ProgrammingError will be thrown if values of another type are used. Values must not be URL encoded. Assigning other values than object literals to dimensions will throw a ProgrammingError.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    The example below configures a WMSImageModel to request temperature data on the 1st of july 2016, at ground level.

    wmsImageModel.dimensions = {
    TIME: "2016-07-01T12:00:00.000Z",
    ELEVATION: 0
    };

    Returns null | object

    Since

    2016.1

  • set dimensions(value): void
  • Parameters

    • value: null | object

    Returns void

  • get getFeatureInfoRoot(): string
  • Root URI of the getMap request interface.

    Returns string

    Since

    2024.0

  • set getFeatureInfoRoot(value): void
  • Parameters

    • value: string

    Returns void

  • get getMapRoot(): string
  • Root URI of the getMap request interface.

    Returns string

    Since

    2021.0.04

  • set getMapRoot(value): void
  • Parameters

    • value: string

    Returns void

  • get layers(): string[]
  • The WMS layers, specified as an array of strings. Each string is a layer name identifier.

    These layers are not the same as a Layer. They are the layers exposed by the WMS server and which are listed in the capabilities document of the WMS server.

    This layers array must be considered as an immutable property. This means that to add or to remove layers, you will need to reassign this property again. Directly removing elements from the array, or directly adding elements to the array, without resetting the property will have no effect.

    The order of the layers in the array corresponds to the rendering order of the layers by the WMS server.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns string[]

  • set layers(layers): void
  • Parameters

    • layers: string[]

    Returns void

  • get modelDescriptor(): ModelDescriptor
  • An object containing metadata about this model

    Returns ModelDescriptor

  • set modelDescriptor(modelDescriptor): void
  • An object containing metadata about this model

    Parameters

    Returns void

  • get queryLayers(): string[]
  • The WMS layers that will be queried. These are the layers that will be used in the GetFeatureInfo requests performed by the WMSImageLayer.getFeatureInfo method.

    The query layers are specified as an array of strings. Each string is a layer name identifier.

    This queryLayers array must be considered as an immutable property. This means that to add or to remove layers, you will need to reassign this property again. Directly removing elements from the array, or directly adding elements to the array, without resetting the property will have no effect.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns string[]

  • set queryLayers(queryLayers): void
  • Parameters

    • queryLayers: string[]

    Returns void

  • get queryable(): boolean
  • Reports whether this model supports GetFeatureInfo requests. This is only true if the queryLayers property is filled in.

    Returns boolean

  • get requestParameters(): null | HttpRequestParameters
  • Custom request parameters to send along with WMS GetMap and GetFeatureInfo request. The object literal can contain simple key/value pairs. If you try to configure request parameters that are part of the WMS standard, a ProgrammingError will be thrown. For example, adding a "layers" request parameter is not allowed. 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. Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns null | HttpRequestParameters

    Since

    2016.1

  • set requestParameters(value): void
  • Parameters

    Returns void

  • get sld(): null | string
  • A url to a Styled Layer Descriptor that must be passed when making a request. This corresponds to the SLD request parameter in the GetMap request. If you assign to this value, the value of the sldBody property, if any, will be reset to null.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns null | string

    Since

    2016.1

  • set sld(value): void
  • Parameters

    • value: null | string

    Returns void

  • get sldBody(): null | string
  • the Styled Layer Descriptor to pass when making a request. This corresponds to the SLD_BODY request parameter in the GetMap request. The SLD must not be URL encoded.

    If you assign to this value, the value of the sldBody property, if any, will be reset to null.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns null | string

    Since

    2016.1

  • set sldBody(value): void
  • Parameters

    • value: null | string

    Returns void

  • get styles(): string[]
  • The named styles to apply on the server when making a request. The style names in the array apply to the respective layers. Specifying a style name for a layer is optional; if you do not wish to specify a style name for a particular layer, you can omit the entry for that layer or pass an empty string in the styles array. The STYLES request parameter is mandatory in a WMS request, but can be empty in case no styles are defined.

    Assigning to this property will automatically trigger a refresh of the visualization on the map.

    Returns string[]

    Since

    2016.1

  • set styles(value): void
  • Parameters

    • value: string[]

    Returns void

  • get transparent(): boolean
  • Indicates whether the ImageModel will request transparent tiles from the server or not

    Returns boolean

  • set transparent(val): void
  • Parameters

    • val: boolean

    Returns void

Methods

  • Signals that the underlying data for the tiled images has changed. If this model is added to a map using a RasterImageLayer, calling this method will thus trigger a refresh of the visualization.

    Returns void

  • Creates a WMS image model for the given layers and options. This is the recommended method to create a model based on information provided by WMSCapabilities.

    Parameters

    • wmsCapabilities: WMSCapabilities

      The capabilities of the WMS server.

    • wmsLayers: WMSCapabilitiesLayerConfig[]

      An array of object literals that defines the desired WMS layers and (optionally) their layer styles. Each object literal has a mandatory layer property and an optional style property, both of type String.

    • Optional options: WMSImageModelCreateOptions

      the options for the WMS model

    Returns WMSImageModel

    a WMSImageModel for the given parameters.

    Since

    2019.1

    Throws

    ProgrammingError if any of the following cases occurs:

    • the reference or the reference of the bounds passed in the options. are not supported by the WMS server's capabilities.
    • The reference and bounds in the options are both passed and the references do not match.
    • both sld and sldBody are specified in the options.
  • Creates a WMS image model for the given layers and options. This is the recommended method to create a model based on a given WMS server URL and layer name(s).

    Parameters

    • url: string

      The URL of the WMS server.

    • wmsLayers: WMSCapabilitiesLayerConfig[]

      An array of object literals that defines the desired WMS layers and (optionally) their layer styles. Each object literal has a mandatory layer property and an optional style property, both of type String.

    • Optional options: WMSImageModelCreateOptions

      the options for the WMS model

    Returns Promise<WMSImageModel>

    a promise for a WMSImageModel for the given parameters. The promise is rejected if the model creation fails.

    Since

    2019.1

Events

"Invalidated" event

  • on("Invalidated", callback: ((...args) => void), context?: any) : Handle
  • An event indicating that this Controller is invalidated. Invalidated means that data has changed and the visualization needs to be refreshed. This event fires when #invalidate is called.

    Parameters

    • event: "Invalidated"
    • callback: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

    Returns Handle