The majority of formats require the same two steps for visualization on a GXY view. To visualize WMS data:
-
Decode the data into an
ILcdModel
using anILcdModelDecoder
. -
Create an
ILcdGXYLayer
for theILcdModel
and add it to theILcdGXYView
.
//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
ILcdGXYLayer layer = new TLcdWMSProxyGXYLayerFactory().createGXYLayer(model);
//Replace the painter provider with a tiled painter
((TLcdGXYLayer) layer).setGXYPainterProvider(new TLcdGXYTiledWMSProxyPainter());
//Wrap the layer with an async layer wrapper to ensure
//that the view remains responsive while data is being painted
ILcdGXYLayer asyncLayer = ILcdGXYAsynchronousLayerWrapper.create(layer);
//Add the async layer to the GXY view (an ILcdGXYView)
view.addGXYLayer(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 The model decoder class that is actually responsible for decoding WMS data is the
|