This article relates to the changes between ENCX 1.8.0.37 and ENCX 1.8.0.181
Finding the depth at a pixel position is (a) quite difficult and (b) something people ask us about a lot. We have added a method to the S57Draw class. It returns a bool to indicate whether it found a depth at that point and an out parameter giving the depth in metres (or in meters for our US customers). We expect it to get used in tooltips - but if you find it takes too long you might want to put it into the hover tip instead.
This incorporates the depth of any displayed feature at the pixel position, such as underwater rocks (UWTROC), Obstructions (OBSTRN) and Wrecks (WRECKS) as well as the normal depth area, dredged areas and soundings.
Here's some code from our test application:
ENCX.PixelPoint pt = new ENCX.PixelPoint();
pt.X = (float)e.X;
pt.Y = (float)e.Y;
double depth;
if (m_draw.DepthAtPoint(pt, out depth))
Console.WriteLine(depth);
else
Console.WriteLine("No depth");
A new method CreateFromBearingAndLength has been added to the GeoLine class.
Properties for the bearing of the line at the start and at the end have been added as well.
We have upgraded the S-52 (presentation standard for S-57/ENC) presentation library to version 3.4 including maintenance document 07. This is the latest version.
Some Inland ENCs did not install correctly as ENCs. Now Inland ENCS (IENCs) are a separate product with an appropriate entry in the S57Product enumeration.
Also emerging from this work: we have added an IsInProduct method to the S57Attribute class - this replaces the property Product which should no longer be used. This is because an S-57 attribute can be used in more than one product. This new method has also been added to S57ObjectClass.
We do not have complete symbology for IENCs as yet.
To improve the contrast of text displayed we have added a slight white outline around it.
The S57CatalogueObserver was firing too many change events after an S57 chart folder had been upgraded.
Calling UserPermit() when the was no dongle or the dongle had not yet fully initialised resulted in an untidy crash. Fixed.
These were stuck turned off. So ENCX did not display them. Fixed.