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 theILcdModel
and add it to theILcdGXYView
//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);