PositionScheme class
A position scheme encapsulates position and bounding box factories for certain type of position data.
There are following known static constant instances available:
Position.scheme
to create positions and boxes for any position data (geographic, projected or any other)Projected.scheme
to create projected positions and boxesGeographic.scheme
to create geographic positions and boxes
Examples (represented as test cases):
// a multi line string with two lines (when interpreted as geographic
// coordinates another west from and another east from the antimeridian)
final lines = [
[177.0, -20.0, 178.0, -19.0, 179.0, -18.0].positions(Coords.xy),
[-179.0, -17.0, -178.0, -16.0].positions(Coords.xy)
];
final mls = MultiLineString(lines);
// a minimum bounding box calculated from this geometry varies by scheme
// `Position.scheme`: a minimum bounding box is calculated mathematically
final b = Box.create(minX: -179.0, minY: -20.0, maxX: 179.0, maxY: -16.0);
expect(mls.calculateBounds(scheme: Position.scheme), b);
expect(mls.populated(scheme: Position.scheme).bounds, b);
// `Projected.scheme`: a minimum bounding box is calculated mathematically
const proj = ProjBox(minX: -179.0, minY: -20.0, maxX: 179.0, maxY: -16.0);
expect(mls.calculateBounds(scheme: Projected.scheme), proj);
expect(mls.populated(scheme: Projected.scheme).bounds, proj);
// `Geographic.scheme`: a minimum bounding box is calculated
// geographically and in this case it spans the antimeridian (that is
// `west > east` even if normally `west <= east` when not spanning)
const geo = GeoBox(west: 177.0, south: -20.0, east: -178.0, north: -16.0);
expect(mls.calculateBounds(scheme: Geographic.scheme), geo);
expect(mls.populated(scheme: Geographic.scheme).bounds, geo);
- Annotations
-
- @immutable
Constructors
-
PositionScheme({required CreatePosition<
Position> position, required CreateBox<Box> box}) -
A position scheme with
position
and boundingbox
factories.const
Properties
-
box
→ CreateBox<
Box> -
The factory to create bounding boxes.
no setter
- hashCode → int
-
The hash code for this object.
no setteroverride
-
position
→ CreatePosition<
Position> -
The factory to create positions.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
conformsWith(
PositionScheme other) → bool -
Returns true if this scheme conforms with
other
. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override