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.schemeto create positions and boxes for any position data (geographic, projected or any other)Projected.schemeto create projected positions and boxesGeographic.schemeto 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
positionand boundingboxfactories.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