Table of Contents

Class FeatureAccessor

Namespace
EncDotNet.S100.Datasets.Pipelines.Spec
Assembly
EncDotNet.S100.Datasets.Pipelines.dll

Extracts a queryable feature collection from a LoadedDataset as IS100Feature instances. Every GML-encoded S-100 spec implemented in this codebase models its features as IS100Feature directly; the ISO 8211-encoded S-101 exposes the same shape through its pipeline Feature records (which implement IS100Feature), and CAP weather warnings expose each area as a surface feature. A single accessor — rather than per-spec strategies — therefore powers generic feature-query tools.

public static class FeatureAccessor
Inheritance
FeatureAccessor
Inherited Members

Remarks

Returns null for catalog entries that carry no queryable vector features (the coverage products S-102 / S-104 / S-111). Callers should treat null as "this spec does not contribute to feature queries".

Methods

GetFeatures(LoadedDataset)

Returns the queryable features for the supplied dataset, or null if the dataset's payload is not a vector feature collection.

public static IEnumerable<IS100Feature>? GetFeatures(LoadedDataset dataset)

Parameters

dataset LoadedDataset

Returns

IEnumerable<IS100Feature>

Remarks

For S-101 the features are resolved lazily on enumeration via S101VectorSource, which materialises feature geometry from the dataset's spatial records as pipeline Feature instances that already satisfy IS100Feature.

GetFeatures(LoadedDataset, BoundingBox?)

Returns the features intersecting extent, or every feature when extent is null. Same null-semantics as the parameterless overload: returns null for datasets whose payload is not a vector feature collection.

public static IEnumerable<IS100Feature>? GetFeatures(LoadedDataset dataset, BoundingBox? extent)

Parameters

dataset LoadedDataset
extent BoundingBox

Returns

IEnumerable<IS100Feature>

Remarks

When the underlying source implements IVectorSourceWithIndex (currently just S-101), an extent query is answered by the source's spatial index — sub-linear in dataset size. GML-encoded products fall back to iterating their model's Features collection and filtering by TryGetBoundingBox(IS100Feature) against extent; adding a per-product index is a follow-up scoped separately from issue #490.