Developer Reference V5 Release Notes

DNC Support

From version 5, ENCX now supports DNC charts. The capability to view DNC charts is only available with a special ENCX licence. If you'd like to know more, please contact us.


Released 10 October 2022.

Fix to allow the Edition Number field to be missing from the PERMIT.TXT file. This is allowed in S-63 Edition 1.1 and permit files from Chart World now leave this field blank.


Released 22 September 2022.

Updated S-62 producer codes.


Released 4 July 2022.

Fixes issue installing ARCS charts.


Released 7 February 2022.

The ability to download NOAA ENC data from the CherSoft Universal Chart Server has been removed.

If you use NOAA charts, you should download these directly from NOAA.


Released 24 September 2021.

ENC presentation library support updated to version 4.0.3.

NOAA BSB raster charts are no longer supported from this version.

NOAA are planning to stop producing these charts and we have therefore removed support for them from our code.

Fix to support unzipping some Latvian ENC transmittals

Some ENC transmittals have been found to be compressed slightly differently from others in such a way that ENCX could not install them. This issue is fixed in this release.

Sample projects upgraded to .NET Framework 4.8


Released 20 July 2020.

Bug fix for S-57 feature information functions

This release fixes an issue where, in low memory conditions and certain circumstances, no S-57 feature information was returned from the various methods in S57Manager.


Released 14 July 2020.

Bug fix for VPF query code

This release fixes an issue with the GetItem function on VPFIteratorGuide, VPFIteratorGuide_DatabaseUse and VPFIteratorGuide_CoverageUse.


Released 10 February 2020.

Improved route checking

The route checking code in ENCX can now detect where a route goes within the safety distance of line and area features. Two properties have been added - CheckLinesWithinSafetyDistance and CheckAreasWithinSafetyDistance - which need setting to true to enable the additional detection.

The route check XML returns an additional element "ClosestPoint" which is true where the route is within the safety distance of a line or area feature, but does not intersect the feature. The RouteChecker sample has been updated to show the new enhancements.

The XML also now includes the new style feature identifiers which include an index.

Using HighlightFeature with duplicate long foreign names

Further to the work in v5.3.0.2 done to distinguish features within a cell with the same long foreign name identifier, in this version the HighlightFeature function will now highlight all features with the same LFN if you specify the index as 0. HighlightFeature will therefore work as it did in versions prior to when used with old style feature identifiers without an index. And when used with the new feature identifiers which include the index, HighlightFeature will only highlight that specific feature.


Released 14 January 2020.

Improved handling for ENC features within a cell with duplicate long foreign name identifiers

Some ENC cells contain features with the same long foreign name identifier. In previous versions of ENCX, this identifier was treated as being unique within a cell so CS57FeatureQuery results would only return details of the first feature it found with that id.

To aid querying all of the features, an Index property has been added to the CFeatureIdentifier class. This is automatically populated when a query using CS57FeatureQuery is performed so all features are returned. In addition, there are two new additional methods: ConstructEx to aid in constructing a CFeatureIdentifier from raw values and ToStringEx to include the index value.

For compatibility purposes, the existing Construct and ToString methods on CFeatureIdentifier work as before so the Index property is not used with these.

Support detailed scale bar mode

When the display scale is more detailed than 1:8000, ENCX can now be made to display a shorter scale bar drawn to 0.1 nautical miles or 0.1 kilometres (rather than 1 nautical mile or 1 kilometre). To support this, there is a new "ScalebarDetailedMode" property on S57Draw. This can be set to one of the following:

  • SDM_Off - (default) ensures ENCX behaves as it always has and the scale bar is drawn unchanged at display scales more detailed than 1:8000.
  • SDM_Auto - shows a scale bar either 0.1 nautical miles or 0.1 kilometres in length, depending on what scale bar units have been set through the Scalebar property.
  • SM_UseMetres - shows a scale bar 100 m in length. The units are always metres regardless of the units set through the Scalebar property.

UKHO AVCS AIO is now enabled by default in DisplaySetting Usages

ENCX has long been able to show AIO information but it was not straightforward to enable it. From this version, the default Usages in ENCX contain AIO. To actually render it though, the display groups for AIO features still need to be enabled.

  • 50001 - show AIO for cells which are being displayed
  • 50002 - show AIO for cells which are not being displayed
  • 50003 - show preliminary notices in blue (otherwise show in red like temporary notices)


Released 1 November 2019.

Added GDAL data to support geotiff import.

Fixed S57 WPF control and sample to show geographic position at cursor.


Released 17 October 2018.

Removed redundant, expired Primar certificate.


Released 25 July 2018.

Updated AML Symbology Library

In this version, ENCX has been updated to use the latest AML Symbology Library (library compilation date 20180301) that was released earlier this month.


Released 18 May 2018.

NEWOBJ Symbology

We were not rendering S-52 NEWOBJ symbology quite correctly. This has been fixed.

MGRS Coordinates

In addition to the support for UTM coordinates added in the previous release, we have added support for MGRS coordinates.

To convert a MGRS position to a GeoPoint, use code like this:

var pt = new ENCX.GeoPoint();
pt.ParseMGRS("30 U XE 01468 26018");

To get a MGRS position from a GeoPoint, you can do this:

var gpFmt = _library.GeoPointFormatter;
gpFmt.UseUniversalGrid = true;
gpFmt.UseNationalGrid = false;
gpFmt.UniversalGrid = ENCX.UniversalGridType.Grid_MGRS;
var pt = new ENCX.GeoPoint { Lat = 53, Lon = -0.5 };
string sMGRSPos = pt.FormattedPosition;

The other option for the UniversalGrid property is Grid_UTM which is the default.

GetInstallationID Sample Application

This release has a new sample application to make getting hold of an InstallationId which is used for Dongle Free Security a little easier.


Released 13 December 2017.

Updated ENC Presentation Library

This release updates ENCX to use the S-52 Presentation Library 4.0.2 'with clarifications to July 2017'. (Confusingly, ENCX was already using 4.0.2 but the standards committee made changes to this version earlier in 2017 but the version of the presentation library was not changed).

As part of this, there's been a slight change to our implementation of the S-52 UDWHAZ05 conditional symbology procedure. This procedure uses a new display setting "Show isolated dangers in shallow water" which can be turned on or off.

There's also a new viewing group 14050 Isolated above water danger, in own ship safe water no isolated danger symbol. (Applies to obstructions, underwater rocks and wrecks from UDWHAZnn) which was used by this procedure but undocumented.

Magnify Raster Charts

A new property 'Magnify' has been added to the RawDraw class which accepts a percentage value to zoom the raster chart to.

100% is the default - unmagnified. The value can be from 25% to 4000%, and should be divisible by 25.

Values less than 25 are rounded up to 25 and values greater than 4000 are rounded down to 4000.

If the value is not divisible by 25 it is rounded up to the next value that is.

The C# RasControl classes for both WinForms and WPF have been updated to include a mouse wheel handler to invoke the magnify. See the sample applications RasView1, Wpf.RasExample to see magnify in action.


A new property has been added to the GeoPoint class to convert from UTM grid coordinates to WGS84 latitude and longitude.

Bug fixes

All of the sample applications have been fixed up so they should just work fine without re-compiling.