Class CoverageHitTest
- Namespace
- EncDotNet.S100.Collections.Library
- Assembly
- EncDotNet.S100.Collections.dll
Point hit-testing of library item coverage (issue #655): whether a position lies within an item's coverage polygons (or bounds), across the antimeridian.
public static class CoverageHitTest
- Inheritance
-
CoverageHitTest
- Inherited Members
Remarks
Coverage rings arrive in two antimeridian conventions: NOAA writes continuous longitudes (e.g. −219.5 for 140.5°E), while S-100 catalogues keep −180..180 and let a ring jump across the seam. Rings are unwrapped into continuous longitudes and tested at the point and its ±360° copies.
Methods
Area(CollectionItem)
A size used to prefer the most detailed of several overlapping items: the bounds' area in square degrees (smaller is more detailed).
public static double Area(CollectionItem item)
Parameters
itemCollectionItem
Returns
Contains(CollectionItem, GeoPosition)
True when position lies within the item's coverage (or bounds).
public static bool Contains(CollectionItem item, GeoPosition position)
Parameters
itemCollectionItempositionGeoPosition
Returns
Unwrap(IReadOnlyList<GeoPosition>)
Makes a ring's longitudes continuous: each vertex is moved by a multiple of 360° so it lies within 180° of its predecessor.
public static GeoPosition[] Unwrap(IReadOnlyList<GeoPosition> ring)
Parameters
ringIReadOnlyList<GeoPosition>