Skip To Content

Custom symbology file structure

The custom presentation library contains a set of configuration files that work together to override the default S-52 presentation library.


Custom symbology files are located at <ArcGIS Server installation drive>\arcgisserver\directories\maritimechartservice\controlfiles\CustomPresentationLibrary. Also available at the same location are Lua script files, Scalable Vector Graphic (SVG) symbols, and the CustomSymbolMap.xml.


Lua version 5.3.5 functions are called via Maritime Chart Service CustomSymbolMap.xml file. This can be done with both, condition or rule statements. Function names are specified in the following syntax: [file name:]function name. If the file name is not specified, it is assumed to be that of the function name + '.lua.

Condition statement calling lndare01 Lua file:

<feature object="LNDARE" prim="3">
<condition functionName=lndare01/>

Lua with condition and rule statements:

<feature object="LIGHTS" prim="1">
<condition functionName="lights:lights03">
<rule type="S" functionName="lights:IsSectorLight" result="true"/>


SVG point, line and pattern fills are in the symbol folder and organized by geometric primitive.

Each S-57 object also references a geometric primitive where: prim="1" is point geometry, prim="2" is line geometry, and prim="3" is polygon or area geometry.

Each symbol must contain a proper pivot point, a point around which the symbol is scaled and rotated. The symbol's pivot point is positioned exactly on the object's position and all elements of the symbol are geometrically related to that position.


RGB colors and SVG Tiny 1.2 profile must be used.


The CustomSymbolMap.xml file calls symbols and Lua functions using condition and rule statements. The main purpose of condition statements is to provide symbology for the feature. Rule statements provide true/false decisions for rule evaluation, and do not provide symbology. Rule operators are also listed in the CustomSymbolMap.xml.

Example of an anchor area S-57 object. The condition points to a point primitive SVG file with the attribute rule, category of anchorage equal to 1.

<feature object="ACHARE" prim=1>
<condition symbolName="N10_Reported_anchorage.svg">
<rule type="A" field="CATACH" operator="equal" value="1"/>

Log files

Log files, in your deployed Maritime Chart Service, report missing files and Lua errors. The default location is <ArcGIS Server installation drive>arcgisserver\directories\maritimeserver\maritimechartservice\logs.