The majority of formats require the same two steps for visualization on a Lightspeed view. To visualize WMS data:

  1. Decode the data into an ILcdModel using an ILcdModelDecoder.

  2. Create an ILspLayer for the ILcdModel and add it to the ILspView.

//First create the model
//Start by creating a TLcdWMSDataSource for the coverage
String serverURL = "https://sampleservices.luciad.com/wms";
String wmsLayerName = "cities";
TLcdWMSDataSource dataSource = TLcdWMSDataSource.newBuilder()
                                                .uri(serverURL)
                                                .addLayer(wmsLayerName)
                                                .build();

//Decode the model by passing the datasource to the model decoder
ILcdModelDecoder decoder =
    new TLcdCompositeModelDecoder(TLcdServiceLoader.getInstance(ILcdModelDecoder.class));
ILcdModel model = decoder.decodeSource(dataSource);

//Create a layer for the model and use the tiled paint strategy
ILspLayer layer = TLspWMSLayerBuilder.newBuilder()
                                     .model(model)
                                     .paintStrategy(ELcdWMSPaintStrategy.TILED)
                                     .build();

//Add the layer to the Lightspeed view (an ILspView)
view.addLayer(layer);

This results in a WMS layer with default styling. See Visualizing Raster Data for more information about visualizing and styling raster data.

This created WMS layer queries the data in a tiled manner.

See the Single image versus tiled WMS requests guide for more information about querying a WMS server for a single image versus querying it in a tiled manner.

This code snippet uses the TLcdCompositeModelDecoder, initialized with all model decoders available in the service registry.

The model decoder class that is actually responsible for decoding WMS data is the TLcdOGCWMSProxyModelDecoder.