Milsymbol Mapping

From Maria GDK Wiki
Revision as of 18:29, 17 October 2025 by Tmd (talk | contribs)
Jump to navigation Jump to search

Milsymbol Mapping

The "MilSymMapper" class provides methods for mapping draw object SIDC and TypeId between the milsymbol versions: APP6D, MIL-STD-2525D, and MIL-STD-2525C.

Examples of Usage

These examples maps the Battle Position type.

Get Mapped SIDC from SIDC

var resources= new DrawObjectCommonResources(...);

// Get APP6D sidc from 15 character MIL-STD-2525C sidc
 var id_d = resources.MilSymMapper.MapAPP6CToAPP6D("SUGPUSTA--A----");

// Get 15 character MIL-STD-2525C sidc from APP6D sidc 
 var id_c = resources.MilSymMapper.MapAPP6DToAPP6C("100301000011010400000000000000");

How to Create MilSymMapper Without Factory

var mappingDrawObjectTypeXmlParser = new MappingDrawObjectTypeXmlParser();
var mappingDrawObjectTypeLoader = new MappingDrawObjectTypeLoader(mappingDrawObjectTypeXmlParser);
var milSymMapper = new MilSymMapper(mappingDrawObjectTypeLoader);

Handling Mismatches Between APP6D and MIL-STD2525C

Some objects cannot be mapped directly between APP6D and MIL-STD2525C. Either because the primitive representation of the objects are not compatible or because the objects are not present in both versions. To handle this, the configuration file MilSymVersionMappings.json (located in the Data folder of the application output), sets up how these objects (SIDCs) should be mapped.

The file is divided into two sections:

  • HierarchyCodeMappings, for mapping a 20 digit APP6D SIDC to a MARIA GDK 4 draw object (MIL-STD2525C) hierarchy code, and vice versa
  • SymbolCodeMappings, for mapping a 20 digit APP6D SIDC to a 15 character MIL-STD2525C SIDC, and vice versa

Entries in each section of the configuration file looks like this:

{
      "SourceVersion": "APP6D",
      "TargetVersion": "MILSTD2525C",
      "Name": "Minimum Safe Distance Zones",
      "Source": "30002500002721000000",
      "Target": "GENERIC.ELLIPSE",
      "ObjectType": "MultiFanArea"
}

The values in an entry are:

Name Description
SourceVersion Version to map from.
TargetVersion Version to map to.
Name Name of object (for readability only, does not affect mapping).
Source SIDC to map from.
Target SIDC to map to.
ObjectType Primitive type of object (for readability only, does not affect mapping).

The entries in the configuration file can be edited to whatever is the best match for the client application, as long as the primitive representation of the objects are compatible.