Table of Contents

Class CoverageArea

Namespace
EncDotNet.S100.DataModel
Assembly
EncDotNet.S100.Core.dll

A single polygonal region of a dataset's declared data coverage, expressed in WGS-84 (EPSG:4326). Corresponds to one DataCoverage surface feature (S-101 FC §3.1.1; the S-57 M_COVR meta-object translated to DataCoverage), whose exterior ring bounds the covered area and whose interior rings punch no-coverage holes.

public sealed class CoverageArea
Inheritance
CoverageArea
Inherited Members

Remarks

Used to drive cross-cell scale-band overlap suppression (issue #438 Phase 2): a coarser cell is clipped to its coverage minus the union of finer overlapping cells' coverage, so overlapping multi-scale cells do not double-draw. Holes are honoured so a coarser cell still shows through a finer cell's no-coverage gaps.

Properties

ExteriorRing

The exterior ring bounding the covered area, in EPSG:4326 (lat/lon per S-100 Part 10b §6.2). Expected to be a closed, non-empty ring of at least three distinct positions.

public required IReadOnlyList<GeoPosition> ExteriorRing { get; init; }

Property Value

IReadOnlyList<GeoPosition>

InteriorRings

Interior rings (holes) subtracted from ExteriorRing — no-coverage gaps within the covered area. Empty when the region is solid.

public IReadOnlyList<IReadOnlyList<GeoPosition>> InteriorRings { get; init; }

Property Value

IReadOnlyList<IReadOnlyList<GeoPosition>>

Methods

Contains(double, double)

Whether a WGS-84 point lies inside the covered area: inside ExteriorRing and outside every interior ring. Uses an even-odd ray cast in longitude/latitude, so it suits cell-sized areas that don't cross the antimeridian.

public bool Contains(double latitude, double longitude)

Parameters

latitude double

Latitude in decimal degrees.

longitude double

Longitude in decimal degrees.

Returns

bool

true when the point is covered.