Developer Reference V2.0 Release Notes

ENCX 2.0 is a major release of ENCX. If you are an existing user who wants to upgrade then you will have to rebuild your applications.

Alternative ENC Projections

ENCX 2.0 provides an implementation of the Mercator projection. Projections can be switched by setting the ProjectionType property of the S57Draw class, e.g.

draw.ProjectionType = ENCX.S57Projection.S57Projection_Mercator

The default is still the simple cylindrical projection that ENCX has used for years but Mercator may be better for interopability with other systems and data. You might find that Mercator is a bit slower to render (but you might not notice or care).

There is also an ALPHA implementation of a Polar Stereographic projection. There are some drawing problems related to this feature. We welcome feedback. If this feature is useful to you please contact us.

draw.ProjectionType = ENCX.S57Projection.S57Projection_PolarStereographic

XML Display Settings

The S57DisplaySettings class can now express the settings as an XML string:

  • Allowing you to easily save the current settings for your application.
  • Or to send to use in support situations.
  • The XML documents the viewing group and text viewing group descriptions.

XML settings strings can replace or merge into a settings object (to get back your saved settings).

More information.

WPF Control

The WPF control and example are now included in the main download.


A 64 bit build of the ENCX SDK. This is aimed at customers whose applications require a large amount of memory. There is now a 64 bit installer which can only be used on 64 bit operating systems.


All of the .NET sample projects have been moved to Visual Studio 2012 and .NET 4.0. Now that VS2013 is just about out we felt we should leave VS2008 behind. However if you are constrained to using older versions of Visual Studio or .NET then rest assured that ENCX is perfectly compatible. The samples can be back ported fine. Get in touch and we can help.

As well as the WPF control there are three more samples...

  • The EncFeaturesAtPoint sample shows how you can provide drill down into the detail of an ENC into a web browser control. Article here.
  • The EncViewWithCSharp is just a version of the EncView1 sample written in C# for people who cannot stand to look at some VB.NET.
  • InstallCellsWithManageENC is now built in rather than a separate download.

Minor API changes and bug fixes

The FastScrolling property of the S57DisplaySettings class has been removed. We felt that the drawing speed of the SDK on modern hardware meant that this property no longer justified the added complexity.

There was an problem associated with label drawing and the manipulation of the DPI setting of S57Draw objects. Fixed.

ENC Chart Folder (SENC) Breaking Changes

Changes to the metadata held in the installed ENC chart folder structure (SENC) mean that ManageENC can now install charts in a way that older versions of the ENCX SDK will not be able to display.

This should be a concern to you if you have an established base of systems based on older versions of ENCX and seek to distribute SENCs or your system comprises a number of applications based on ENCXs old and new. We do not anticipate this being a problem for many people.

To install and update charts in SENCs that are usable with ENCX SDKs both old and new you should only use the ManageENC supplied with the old ENCX. For example for compatibility with  ENCX 2.0 and ENCX 1.9 you must use the ManageENC from ENCX 1.9.

Changes to Raster Charts Folder (RENC)

Raster chart folders now make use of a "directory" file to hold metadata about installed charts rather than this information being distributed throughout the chart folder.

The ManageHCRF chart management program supplied with this release of ENCX should be used to install and update ARCS charts.

This speeds the opening of raster chart folders, improves reliability and brings the raster chart handling of ENCX more in line with S-57/ENC handling (which adopted a similar scheme way back at ENCX 1.6).

The changed allowed a lot of simplification to the code and the removal of the old cache file system which had been linked to problems experienced by customers.

The CloseRasFolder method has been removed from the RasManager class.