Skip To Content

Customizing configuration files

The Maritime Chart Service has various control files that can be configured to meet your specific needs. Configuration options include the ability to expand the type of S-57 Objects and Attributes that the system will recognize if you've created a custom specification, S-52 presentation library customizations to change default symbol colors, or alter the text format used to portray your data. There are also configuration options for the Maritime Chart Service that control how updates are applied, what coordinate system is used, and what size you want your symbols and text to be displayed.

Configuration settings related to IHO standards such as S-57, ENC, S-52, and S-63 are all configured by default to those specifications.

All configuration files are under your controlFilesDirectory location, which is <Installation path>:\arcgisserver\directories\maritimeserver\maritimechartservice. This location is in your controlFilesDirectory property; see Modifying Maritime Chart Service capabilities properties for additional information on setting this location. Back up this location if you make any changes. Future installations will overwrite this location.

S57 data dictionary

The S57DataDictionary.xml file contains all the S-57 objects and attribute IDs as well as acronyms and descriptive values. It also contains a list of agency codes.

Localization changes can be made to this file to display object and attribute names in the local language. You can extend this file to include new objects, attributes, and enumerations if you support unpublished product specifications.


The map service must be stopped and restarted for changes to the S57DataDictionary.xml file to be recognized by the service.

Server configuration

The ServerConfiguration.xml file provides support for various coordinate systems, display parameters, and automatic update support.

Coordinate systems

The coordinate system section of the ServerConfiguration.xml file supports the following coordinate systems:

  • WGS 84
  • WGS 84 / Alaska Polar Stereographic
  • WGS 84 / Antarctic Polar Stereographic
  • WGS 84 / Arctic Polar Stereographic
  • WGS 84 / World Mercator
  • WGS 84 / Web Mercator (Auxiliary Sphere)
  • WGS 84 / Pseudo-Mercator
  • WGS 84 / UTM: Zones 1N - 60N
  • WGS 84 / UTM: Zones 1S - 60S
  • ETRS89 / UTM: Zones 28N - 38N
  • GR96 / UTM: Zones 18N - 29N
  • Amersfoort / RD New
  • World Polyconic

Consider the following:

  • The newly created .senc file will contain the set CoordinateSystem value in the name.
  • To change projections, you must modify the CoordinateSystem value, which is defaulted to 102100 (Web Mercator Auxiliary Sphere).
  • S-57 datasets that fall outside the coordinate system boundary will not be generated, and a warning message will be written to the log file.

  1. Open your ServerConfiguration.xml file and modify the CoordinateSystem value.
  2. Save your changes.

    The map service must be stopped and restarted for changes to the ServerConfiguration.xml file to be recognized by the service.

  3. Stop your map service.

    You don't have to delete your existing .senc files. They will be deleted and re-created automatically by the service.

  4. Start your map service.

Your .senc files are now re-created with the new coordinate system. The CoordinateSystem value will be in the name of your .senc file for reference.


These settings allow an administrator to optimize their display based on the S-57 datasets they are required to host. Typically, these settings are not modified but allow for fine tuning.

<Chart minZoom=".05" maxZoom="1.2"/>
<Symbol scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Line scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Area scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Text scaleFactor="1.0" minZoom=".05" maxZoom="1.2" removeDuplicateText="true" halo="on"/>


This setting controls when your dataset will be displayed based on the S-57 dataset's scale and the view scale. The display of the S-57 datasets can be determined by the following: X = Dataset Scale / View Scale where X is your reference scale.

  • If X is < minZoom, the dataset will not display.
  • If X is > maxZoom, the dataset will display as long as another dataset doesn’t have a better reference scale value.
  • If X is within the range of minZoom or maxZoom, the dataset will display.

By increasing the minZoom to a larger number (for example, 0.28), you'll need to zoom in closer before the dataset displays.

If two S-57 datasets both fall within the minZoom and maxZoom range, the dataset with the smaller reference scale will be displayed. For example, you have two S-57 datasets (A at 1:1,500,000 and B at 1:90,000) and your view scale is 1:587,862.

  • Reference scale for A = 1500000/587862, which is 2.55
  • Reference scale for B = 90000/587862, which is 0.153
Since 0.153 is less than 1, you divide 1 by the reference scale (1/0.153) to get the new reference scale value of 6.5 for Dataset B. Dataset A reference scale is 2.55 and Dataset B reference scale is now 6.5. Because 2.55 is closer to 1:1 view scale of the dataset, Dataset A will be displayed.

Symbol, Line, and Area

These properties all contain a scaleFactor as well as minZoom and maxZoom settings. Changing these values will either increase or decrease the size at which your symbols will draw. Once X (reference scale) is calculated, that value is multiplied by the scaleFactor. The new value is then compared to the minZoom and maxZoom settings as follows:

  • If X is < minZoom, set it to minZoom
  • If X is > maxZoom, set it to maxZoom


The Text property’s scaleFactor as well as minZoom and maxZoom settings behave the same way as Symbol, Line, and Area. Changing these values will either increase or decrease the size at which your text will draw. The Text property also contains two additional settings for removing duplicate text (removeDuplicateText) and removing the halo from around text features in all color schemes. When removeDuplicateText is turned on (the default setting), it will remove duplicate text for features from S-52 text group 21 Names for position reporting, with the same S-57 Object Class name. If S-57 Object class names are different, the duplicate text is not removed.

Modifying display parameters

  1. Open your ServerConfiguration.xml file and modify the DisplayParameters settings.
  2. Save your changes.

    The map service must be stopped and restarted for changes to the ServerConfiguration.xml file to be recognized by the service.

  3. Stop your map service.
  4. Start your map service.

The display parameters of your existing S-57 datasets have not been modified. Any new S-57 datasets that are added to the datasets folder will display with the updated parameters. DisplayParameters settings are used at draw time.


AutoCellUpdate allows you to automatically apply dataset changes without having to stop and restart the service. This feature allows you to configure 24/7 support. By default, the Maritime Chart Service is installed with this setting turned off. Before turning this setting on, you need to understand how long it takes to copy a 5 MB file across your network and what your dataset update strategy is.

Once the AutoCellUpdate property is enabled by setting use="true", the Maritime Chart Service will detect if there are any changes to your datasets folder. Once a modification is detected, the same logic that's used when the service is started is run against the datasets folder. This will detect what dataset changes have occurred and update the service’s .senc and find.dat files, accordingly, while the service is still running. Users will only notice the change when the display is refreshed or search or identify is used on the dataset that is actively being processed.

The delaySeconds setting sets how long the Maritime Chart Service will wait before running its logic. For example, if set to 10 seconds, the Maritime Chart Service, once it detects a change to the datasets folder, will wait to run its logic for another 10 seconds. If another change is detected before it counts to 10, it will start counting over. Once it reaches the delaySeconds count value, it will process the changes. Each file that is copied to the datasets folder counts as a change. That means if you copy, for example, 10 files at once, each file restarts the count as it's copied.

If you don't set a large enough delaySeconds value and your dataset file takes longer than the setting to copy, Maritime Chart Service will not be able to process that dataset. This is no different than if you tried to manually start the map service before you finished copying data into the datasets folder. It is recommended that you set your delaySeconds value by at least a factor of 3 based on how long it takes to copy a single 5 MB .000 file into the datasets folder from your staging location.

  1. Open your ServerConfiguration.xml file and modify the AutoCellUpdate settings.

    It should look similar to the following:

    <AutoCellUpdate use="true" delaySeconds="10"/>
  2. Save your changes.
  3. Stop your map service.
  4. Start your map service.

The .senc files will not be re-created for this change unless new S-57 datasets where added to the datasets folder while the service was shut down.

S52 display properties

This control file allows the system administrator to configure how the service will behave based on the S-52 standard.


The map service must be stopped and restarted for changes to the S52DisplayProperties.xml file to be recognized by the service.

Display parameters

There are various S-52 and server-based parameters that the client application can pass to the service, which allows the display to be modified independently by each client request. By default, when the service is started, the settings in S52DisplayProperties.xml will be used. The sample application will display those values to the user and provide additional values to be set that can also be found in the S52DisplayProperties.xml file.

Display properties
  • Shallow Contour
  • Safety Contour
  • Deep Contour
  • Color Scheme
  • Depth Units
  • Depth Shades
  • Shallow Patterns
  • Point Symbolization
  • Area Symbolization
  • Display Cell Extents—This setting is not currently part of the S52DisplayProperties.xml file
  • Honor SCAMIN
  • Display National Object Names

Display Cell Extents is turned off by default. When turned off, the intelligent zoom chooses the best charts for the area based on the current reference scale and displays them. If a chart is the best one for the area but has a reference scale lower than the chart minZoom, the cell extent is drawn instead of the chart. The client can override this and turn all cell extents on using the client side parameters. When turned on, all dataset extents are visible regardless of your reference scale.

Here is an example of what gets passed to the service by the client.


Text groups

By default, all text groups associated with S-57 objects are turned on. These groups can be turned off by the administrator and cannot be overridden by the client.

View over groups

The S52DisplayProperties.xml file comes with various samples of how to configure different feature layers within your service layer. By default, the ParameterGroup name ViewOverGroups will be used. You must make sure all other samples have a different name.

The concept of view over groups comes directly from S-52 and can be configured and extended in the same way as S-52.


With the release of AML 1.1.3 Portrayal Specification, a new set of view groups have been defined. To use these groups for your S-57 AML datasets, you must change your ViewOverGroups Parameter Group setting to use ViewOverGroups_AML_Sample. Make sure to change the name of ViewOverGroups_AML_Sample to ViewOverGroups and rename your existing Parameter Group something other than ViewOverGroups. The AML view groups contain 23 layers, while the default view group contains 8 layers.


You must restart your map service after making changes to your S52DisplayProperties.xml file.

<ParameterGroup name="ViewOverGroups" defaultVisibility="false">
	<ViewoverGroupsDescription>This example includes all view groups into 8 feature layers</Description>
	<Parameter name="0" type="E" default="2" range="11000-11060,21010-21060,31000-31080">
		<Description>Information about the chart display</Description>
		<ExpectedInput code="1" value="False"/>
		<ExpectedInput code="2" value="True"/>


ParameterGroup name

Must be set to ViewOverGroups for the system to recognize it; otherwise, rename it if used as a sample reference.

ParameterGroup defaultVisibility

True or False


See Default Visibility Options for View Over Groups.


Internal documentation describing the feature layer.

Parameter name

This attribute no longer has to be unique. The service automatically assigns a value starting with 0 when the service starts.

Parameter default

The system default value. This field is for documentation only.

  • 1—The feature layer will be turned off by default when brought into an application.
  • 2—The feature layer will be turned on by default when brought into an application.

Parameter range

S-57 objects that are included in this feature layer. Values come from View Groups located at the bottom of the S52DisplayProperties.xml.


This text is displayed on your contents tab or in the table of contents.

Default visibility options for view over groups


Default setting: Set to True for an OverViewGroup group containing only one feature layer.

For example, soundings. It is expected that feature layers can be turned on or off only. All other S-57 service layer information will be displayed unless you turn the parent layer off. For this example, if you turn off soundings, all other information in the service layer will be displayed. This option is a way to quickly create a single feature layer that can be turned on and off without the need to define other feature layers.

Set to True for an OverViewGroup containing more than one feature layer.

You get the same behavior as in the default setting. The exception is when you have all view groups represented in the OverViewGroup, whether that's one or more feature layers. When you turn the last feature layer off, that feature layer will still be displayed unless you turn off the parent layer. To avoid this, make sure you set defaultVisibility to False when you include all view groups in your OverViewGroup.

Set to False and it is a single layer.

When the feature layer is turned off, the parent layer is also turned off since nothing should be displayed. This option should be used when only one feature layer, for example, navaids, is to be displayed from the data. Only the data from the feature layer will be displayed. No other data from the service will be displayed.

Set to False and there is more than one feature layer.

When all the feature layers are turned off, the parent layer is also turned off. This option should be used when one or more feature layers are required. Another example of this is to have a feature layer for soundings and a feature layer for navaids. Those will be the only two feature layers displayed. All other S57 service layer information is suppressed.

An OverViewGroup is defined with no feature layer information.

You should set the defaultVisibility setting to False. Otherwise, the feature layer node will not work to turn off the layer.


If the setting is not included, it will default to True.

Viewing group descriptions (View Group)

According to S-52, S-57 Objects are grouped into View Groups. The View Group IDs are what your ViewOverGroups range values are set to. These View Group IDs are related to entries in your .dic files.

The .dic files, which are located with the rest of your control files, are part of the S-52 Standard and control how features are displayed. These view groups can be configured as necessary to create OverViewGroup feature layers for your service.

For example, the ViewGroup for beacon contains five individual S-57 Objects, but they are all controlled by one ViewGroup.

<ViewGroup id="17020" Description="beacon"/>
	<ViewGroupS57Objects Code="" Acronym="BCNCAR" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNISD" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNLAT" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNSAW" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNSSP" Description="" Dictionary="psymrefs" Comments=""/>

If you want to turn on or off each beacon type individually, you have to create new ViewGroups for each beacon type and modify your associated .dic files.