Visualizing MilSym data on a Lightspeed view requires the same two steps as the majority of the formats:

  • Create an ILcdModel containing the data. The model is created and not decoded from disk, as the military symbology standard does not describe a file format.

  • Create an ILcdGXYLayer for the ILcdModel and add it to the ILcdGXYView

//First create the model
//Create and populate a model with military symbols
//In this example, we use APP6 domain objects
TLcdVectorModel model = new TLcdVectorModel(new TLcdGeodeticReference());
model.setModelDescriptor(new TLcdAPP6AModelDescriptor(null, "APP-6A", "APP-6A", null));

// Create an APP-6A symbol: an unmanned aerial vehicle unit. This symbol has one point
// that indicates its position. When a symbol is created, the minimum number of points
// needed to draw the symbol is created.
// A value for the text modifier "Unique Designation" is also set.
TLcdEditableAPP6AObject object =
    new TLcdEditableAPP6AObject("STGAUCVU----USG", ELcdAPP6Standard.APP_6A);
object.move2DPoint(0, 27, 46); // Move the object
object.putTextModifier(ILcdAPP6ACoded.sUniqueDesignation, "Regular");
model.addElement(object, ILcdFireEventMode.NO_EVENT);

//Create a layer for the app6 model
TLcdGXYLayer app6Layer = TLcdGXYLayer.create(model);
app6Layer.setGXYPainterProvider(new TLcdAPP6AGXYPainterProvider());
app6Layer.setGXYLabelPainterProvider(new TLcdAPP6AGXYLabelPainterProvider());
//Wrap the layer with an async layer wrapper to ensure
//that the view remains responsive while data is being painted
ILcdGXYLayer layer = ILcdGXYAsynchronousLayerWrapper.create(app6Layer);

//Add the async layer to the GXY view (an ILcdGXYView)
view.addGXYLayer(layer);