Table of Contents

Class Feature

Namespace
EncDotNet.S100.Pipelines.Vector
Assembly
EncDotNet.S100.Core.dll

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

IReadOnlyDictionary<string, object>

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

IReadOnlyList<GeoPosition>

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

IReadOnlyList<IReadOnlyList<GeoPosition>>

FeatureType

Feature type code (e.g. "DepthArea", "LandArea", "Buoy").

public required string FeatureType { get; init; }

Property Value

string

GeometryType

Geometric primitive type.

public required GeometryType GeometryType { get; init; }

Property Value

GeometryType

Id

Feature record identifier within the dataset.

public required long Id { get; init; }

Property Value

long

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

IReadOnlyList<IReadOnlyList<GeoPosition>>

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; }

Property Value

IReadOnlyList<SurfacePart>