Class S102DepthLines
The line work SoundCharts traces from an S-102 grid: the safety contour (S-164 UserSelectedSafetyContour) and the border along the limit of the S-102 data, where S-101 takes over (S-98 Part A §A-6.9.1).
public static class S102DepthLines
- Inheritance
-
S102DepthLines
- Inherited Members
Remarks
Both are traced with marching squares (IsolineTracer) through the depth values the coverage pipeline sampled, so they follow the viewport subset, stride and shoal-biased overview the bands use. No-data nodes break the safety contour, which therefore ends at the coverage limit. The limit is traced as the 0.5 isoline of a valid-data mask, so it runs halfway between the last valid node and the first no-data one, and isn't drawn along the edges of the sampled grid: there the data continues into the next tile or the viewport goes on.
Fields
DepthField
The S-102 coverage field the lines are traced on.
public const string DepthField = "depth"
Field Value
Methods
CoverageLimit(StyledCoverageLayer, Func<double, double, (double Longitude, double Latitude)>?)
Traces the limit of the valid depth values.
public static IReadOnlyList<Isoline> CoverageLimit(StyledCoverageLayer layer, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)
Parameters
layerStyledCoverageLayerThe sampled S-102 coverage.
nativeToWgs84Func<double, double, (double Longitude, double Latitude)>Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.
Returns
- IReadOnlyList<Isoline>
The border, in EPSG:3857 metres, unlabelled; empty when every node, or none, has a value.
SafetyContour(StyledCoverageLayer, double, Func<double, double, (double Longitude, double Latitude)>?)
Traces the depth isoline at depthMetres.
public static IReadOnlyList<Isoline> SafetyContour(StyledCoverageLayer layer, double depthMetres, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)
Parameters
layerStyledCoverageLayerThe sampled S-102 coverage.
depthMetresdoubleThe safety contour, in metres (positive down).
nativeToWgs84Func<double, double, (double Longitude, double Latitude)>Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.
Returns
- IReadOnlyList<Isoline>
The isolines, in EPSG:3857 metres, unlabelled.
SurfaceExtent(StyledCoverageLayer, Func<double, double, (double Longitude, double Latitude)>?)
The EPSG:3857 extent of the sampled grid as the surface is drawn: the bounds of its corner nodes, padded by half a cell. The line sub-layers use it so they frame the dataset exactly as the surface does.
public static MercatorBounds SurfaceExtent(StyledCoverageLayer layer, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)
Parameters
layerStyledCoverageLayerThe sampled S-102 coverage.
nativeToWgs84Func<double, double, (double Longitude, double Latitude)>Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.
Returns
- MercatorBounds
The extent.