Developer Reference ENC Decluttering

The left hand side of this chart has decluttering turned on. The right hand side is standard.

Over the years we have learnt that precisely respecting the S-52 and ECDIS standards doesn't necessarily result in the best ENC display. There are plenty of products that can have a chart display that doesn't have to follow these standards. We aim to allow compliance with standards but not to force our customers to be held back by them inappropriately. So if you aren't creating an ECDIS then you can try the declutter setting but it is switched off by default.

This is a bunch of small improvements. We considered splitting them up and allowing people to pick and chose from them but they really work best when applied together. Most of the development of this feature was for our Nuno Navigator product.

We've put an check box in the EncView1 sample so that you can try it yourself. Many of the improvements are visible in the left hand half of the chart above. The list of improvements:

  • Many symbols have been made a little smaller. Some smaller than others - we have aimed to keep all the symbols clear but some of them were, in our opinion, overly chunky and obscured other bits of the chart.
  • Shrink area labels to fit inside the area they label. Labels are a major source of display clutter, not least because they all run horizontally. Shrinking area labels is one of the approaches we take to try and tame clutter. Sometimes the labels are drawn quite small although there is a minimum size beyond which we won't go. In many chart display systems it is a simple matter for the user to pan and zoom to the label to get it to a size that can be easily read.
  • Replace the word "deg" with a degree symbol. The symbol takes up less space on the display.
  • Scaling when zoomed out. As the display is zoomed out from the compilation scale of an ENC cell we make symbols, test and sounding labels smaller.
  • Turning off some features when zoomed out. There has always been a point at which we turn off much of the chart display when the chart is display underscale (zoomed out) but we have brought this forward for some unimportant text labels and for lights of a certain range (this is because chart producers rarely set the SCAMIN values for lights as recommended).

How to access the improvements in the API

Declutter is a property of the S57DisplaySettings class that takes an enum. Currently the enum has 3 values. The first turns decluttering off, the second will always do the maximum, best decluttering (as we see it), our state of the art and the 3rd is how decluttering is at this release. If we significantly change it in the future we'll make this setting do the same thing but "max" will do more!

S57DisplayImprovements_Nothing
S57DisplayImprovements_Max
S57DisplayImprovements_Level1

So to take a snippet out of the EncView1 sample code:

If chk.Checked Then
    draw.DisplaySettings.ImprovementsLevel = ENCX.S57DisplayImprovements.S57DisplayImprovements_Max
Else
    draw.DisplaySettings.ImprovementsLevel = ENCX.S57DisplayImprovements.S57DisplayImprovements_Nothing
End If

Get in touch if you are using this feature, let me know how it's going and any suggestions for improvements are always welcome.