Class Feature
A single geographic feature read from a vector dataset.
public sealed class Feature : IS100Feature
- Inheritance
-
Feature
- Implements
- Inherited Members
Remarks
Implements the encoding-neutral IS100Feature shape so that
generic pipeline components (e.g. FeatureGeometryProvider<TFeature>)
and the MCP query tools can consume ISO 8211-encoded S-101 / S-57 features
alongside the GML-encoded products without an intermediate adapter. The
single Coordinates / GeometryType pair is mapped
onto the interface's Points / Curves / ExteriorRing
buckets on demand.
Properties
Attributes
Feature attribute values keyed by attribute code.
public required IReadOnlyDictionary<string, object?> Attributes { get; init; }
Property Value
Coordinates
Geometry coordinates. Points: single coordinate. Lines/Areas: ordered list of (lat, lon) pairs. For surfaces this is the exterior ring; holes are carried in InteriorRings.
public required IReadOnlyList<GeoPosition> Coordinates { get; init; }
Property Value
Curves
For a curve feature whose curves do not all meet end to start, each of its curves in order; Join(IReadOnlyList<IReadOnlyList<GeoPosition>>) groups them into the feature's connected parts. Empty when Coordinates is the feature's only curve. Coordinates still holds all of them in order.
public IReadOnlyList<IReadOnlyList<GeoPosition>> Curves { get; init; }
Property Value
FeatureType
Feature type code (e.g. "DepthArea", "LandArea", "Buoy").
public required string FeatureType { get; init; }
Property Value
GeometryType
Geometric primitive type.
public required GeometryType GeometryType { get; init; }
Property Value
Id
Feature record identifier within the dataset.
public required long Id { get; init; }
Property Value
InteriorRings
Interior (hole) rings for surface geometries, each an ordered list of (lat, lon) pairs. Empty for non-surface geometries or surfaces without holes. Renderers subtract these from the exterior ring (Coordinates) when filling, so that, for example, a sea/depth area encoded around islands does not paint over the land cut out as holes.
public IReadOnlyList<IReadOnlyList<GeoPosition>> InteriorRings { get; init; }
Property Value
SurfaceParts
For a surface feature with several surfaces, each surface with its own holes. Empty when Coordinates and InteriorRings are the feature's only surface; for several surfaces they still hold all the exterior rings joined and all the holes.
public IReadOnlyList<SurfacePart> SurfaceParts { get; init; }