geobase library
Geospatial data, spherical geodesy, projections, tiling schemes and vector data.
Key features:
 geographic (longitudelatitude) and projected positions and bounding boxes
 spherical geodesy functions for great circle and rhumb line paths
 simple geometries (point, line string, polygon, multi point, multi line string, multi polygon, geometry collection)
 features (with id, properties and geometry) and feature collections
 temporal data structures (instant, interval) and spatial extents
 vector data formats supported (GeoJSON, WKT, WKB)
 coordinate projections (web mercator + based on the external proj4dart library)
 tiling schemes and tile matrix sets (web mercator, global geodetic)
Usage: import package:geobase/geobase.dart
Classes
 Aligned
 An aligned point within a geospatial box or tile.
 Bounded
 A base interface for classes that know their bounding boxes.
 Box
 A base interface for axisaligned bounding boxes with min & max coordinates.
 BoxCoords
 A geospatial bounding box as an iterable collection of coordinate values.
 ContentDecoder
 An interface to decode content from a text or binary format.

ContentEncoder<
Content extends Object> 
An interface to encode
Content
into a text or binary format.  Coordinates
 Geospatial coordinate values as an iterable collection of double values.
 CoordRefSys
 Metadata about a coordinate reference system (CRS) identified and specified by id.
 CoordRefSysResolver
 An abstract class for resolving coordinate reference system information.
 DefaultFormat
 The "default" text format for coordinate and geometry objects.
 Dms
 A default implementation for DmsFormat abstract base class, that defines methods for parsing and formatting degrees/minutes/seconds on latitude, longitude and bearing values.
 DmsFormat
 A base class for formatters with methods for parsing and formatting degrees/minutes/seconds on latitude, longitude and bearing values.

Feature<
T extends Geometry>  A feature is a geospatial entity with id, properties and geometry.

FeatureBuilder<
T extends FeatureObject, E extends Geometry> 
A builder to create geospatial feature objects of
T
from FeatureContent. 
FeatureCollection<
E extends Feature< Geometry> >  A feature collection contains an array of Feature items.
 FeatureObject

A common base interface for geospatial feature objects (
Feature
andFeatureCollection
).  GeoBox
 A geographic bounding box with west, south, east and north values.
 GeoExtent
 A geospatial extent with spatial and optional temporal parts.
 Geographic
 A geographic position with longitude, latitude and optional elevation and m.
 GeoJSON
 The GeoJSON text format for coordinate, geometry and feature objects.
 GeoJsonConf
 Optional configuration parameters for formatting GeoJSON.
 Geometry
 A base interface for geometry classes.

GeometryBuilder<
T extends Geometry, E extends Geometry> 
A builder to create geometry objects of
T
from GeometryContent. 
GeometryCollection<
E extends Geometry>  A geometry collection with geometries.
 GeoTileMatrixSet
 A tile matrix set with conversions between tiles and geographic positions.
 GlobalGeodeticQuad
 "Global Geodetic Quad" tile matrix set ("World CRS84 Quad" for WGS 84).
 Instant
 An instant with a timestamp.
 Interval

An interval between optional
start
andend
instants.  LineString
 A line string geometry with a chain of positions.
 LonLat
 A geographic position as an iterable collection of lon and lat values.
 LonLatElev
 A geographic position as an iterable collection of lon, lat and elev values.
 LonLatElevM
 A geographic position as an iterable collection of lon, lat, elev and m values.
 LonLatM
 A geographic position as an iterable collection of lon, lat and m values.
 MultiLineString
 A multi line string with an array of line strings (each with a chain of positions).
 MultiPoint
 A multi point geometry with an array of points (each with a position).
 MultiPolygon
 A multi polygon with an array of polygons (each with an array of rings).
 Point
 A point geometry with a position.
 Polygon
 A polygon geometry with one exterior and 0 to N interior rings.
 Position
 A base interface for geospatial positions.
 Positionable
 A positionable object has (geospatial) coordinate values available.
 PositionArray
 Coordinate values of geospatial positions as an iterable collection.
 PositionCoords
 A position as an iterable collection of coordinate values.
 ProjBox
 A bounding box with minX, minY, maxX and maxY coordinates.
 Projected
 A projected position with x, y, and optional z and m coordinates.
 Scalable
 A scalable object at the zoom level (a positive number).
 Scalable2i
 Scalable x, y coordinates at the zoom level.
 ScaledConverter
 A coordinate converter between geospatial positions and scaled coordinates.
 SimpleGeometry
 A base interface for "simple" geometry classes.
 SimpleGeometryContent
 An interface to write simple geometry data to format encoders and object builders.

SpatialExtent<
T extends Box>  An extent with 1 to N bounding boxes in defined coordinate reference system.
 SphericalGreatCircle
 Latitude/longitude points on a spherical model earth, and methods for calculating distances, bearings, destinations, etc on (orthodromic) greatcircle paths.
 SphericalGreatCircleLineString
 Calculations for line strings (as an iterable of geographic positions) on a spherical model earth (greatcircle paths).
 SphericalRhumbLine
 Latitude/longitude points on a spherical model earth, and methods for calculating distances, bearings, destinations, etc on (loxodromic) rhumb lines.
 Temporal
 A base class for temporal objects like instants and intervals.
 TemporalExtent
 An extent with 1 to N intervals in defined temporal reference system.

TextReaderFormat<
Content extends Object> 
An interface to access text format decoders (readers) for
Content
. 
TextWriterFormat<
Content extends Object> 
An interface to access text format encoders (writers) for
Content
.  TileMatrixSet
 A tiling scheme represented as a set of tile matrices (grids).
 WebMercatorQuad
 "Web Mercator Quad" tile matrix set.
 WGS84
 Projections for the WGS 84 geographic coordinate system.
 WKB
 The Wellknown binary (WKB) format, see geometry for accessing the format.
 WKT
 The WKT text format for coordinate and geometry objects.
 WktLikeFormat
 The WKT (like) text format for coordinate and geometry objects.
 XY
 A projected position as an iterable collection of x and y values.
 XYM
 A projected position as an iterable collection of x, y and m values.
 XYZ
 A projected position as an iterable collection of x, y and z values.
 XYZM
 A projected position as an iterable collection of x, y, z and m values.
Mixins

BinaryFormat<
Content extends Object> 
A mixin to access binary format encoders and decoders for
Content
 CoordinateContent
 An interface to write coordinate data to format encoders and object builders.
 FeatureContent
 An interface to write geospatial feature objects to format encoders and object builders.
 GeometryContent
 An interface to write geometry data to format encoders and object builders.

PositionData<
E extends Position>  A fixedlength and randomaccess view to positions with coordinate values.
 Projection
 A mixin defining an interface for (geospatial) projections.
 ProjectionAdapter
 A projection adapter bundles forward and inverse projections.
 PropertyContent
 An interface to write properties to format encoders and object builders.

TextFormat<
Content extends Object> 
A mixin to access text format encoders and decoders for
Content
.
Extensions
 BoxCoordinatesExtension
 A helper extension on Box to convert data as BoxCoords.
 DoubleAngleExtension
 An extension on double with basic degrees and radians utility methods.
 ListCoordinateExtension

A helper extension on
List<double>
to handle coordinate values.  PositionCoordinatesExtension
 A helper extension on Position to convert data as PositionCoords.
 PositionIterableCoordinatesExtension

A helper extension on
Iterable<Position>
to convert data as PositionArray.  SphericalGreatCircleExtension
 An extension for easier access to SphericalGreatCircle.
 SphericalGreatCircleIterableExtension
 An extension for easier access to SphericalGreatCircleLineString.
 SphericalRhumbLineExtension
 An extension for easier access to SphericalRhumbLine.
Constants
 defaultEpsilon → const double

The default epsilon value
1.0e9
used as a tolerance inequals2D
,equals3D
and similar methods in this package.1.0e9
 doublePrecisionEpsilon → const double

The maximum relative precision of double numbers (IEEE 754).
2.220446049250313e16
 earthCircumferenceWgs84 → const double

The earth circumference in meters (from earth equatorial radius by WGS 84).
2 * math.pi * earthRadiusWgs84
 earthRadiusWgs84 → const double

The earth equatorial radius in meters as specified by WGS 84.
6378137.0
 maxLatitude → const double

The maximum value for the geographic latitude.
90.0
 maxLatitudeWebMercator → const double

The maximum value for the geographic latitude inside the Web Mercator
projection coverage.
85.05112878
 maxLongitude → const double

The maximum value for the geographic longitude.
180.0
 minLatitude → const double

The minimum value for the geographic latitude.
90.0
 minLatitudeWebMercator → const double

The minimum value for the geographic latitude inside the Web Mercator
projection coverage.
85.05112878
 minLongitude → const double

The minimum value for the geographic longitude.
180.0
 screenPPIbyOGC → const double

OGC defines a screen pixel of 0.28 mm that approximates to 90.7 ppi.
0.0254 / 0.00028
Functions

clampLatitude(
double lat) → double 
Returns a clipped latitude in the range
[90.0, 90.0]
. 
distanceHaversine(
Geographic position1, Geographic position2, {double earthRadius = 6371000.0}) → double 
Returns a distance in meters between
position1
andposition2
. 
normalizeLongitude(
double lon) → double 
Returns a normalized longitude in the range
[180.0, 180.0[
by using the formula(lon + 180.0) % 360.0  180.0
(if outside the range).
Enums
 AxisOrder
 The axis order of coordinate values in position and point representations.
 CanvasOrigin
 The position of the origin in a canvas or a grid.
 CardinalPrecision
 The precision for cardinal directions (compass point).
 Coords
 An enum for coordinate types (by spatial dimension and whether is measured).
 DmsType
 An enum for common representation of geographic positions by coordinates (using degrees, minutes and seconds as components).
 Geom
 An enum for geometry types.
 GeoRepresentation
 An enum for spatial representations that can be used to code logic when need to choose some options based on a representation.
Typedefs

AddGeometry<
T extends Geometry> = void Function(T geometry, {String? name}) 
A function to add
geometry
to some collection with an optionalname
. 
CreateBox<
T extends Box> = T Function({double? maxM, required double maxX, required double maxY, double? maxZ, double? minM, required double minX, required double minY, double? minZ}) 
Creates a new bounding box from
minX
,minY
,maxX
andmaxY
values. 
CreatePosition<
T extends Position> = T Function({double? m, required double x, required double y, double? z}) 
Creates a new position of
T
fromx
andy
, and optionalz
andm
. 
TransformPosition
= T Function<
T extends Position>(T source) 
A function to transform the
source
position ofT
to a position ofT
.  WriteFeatures = void Function(FeatureContent output)

A function to write geospatial feature objects to
output
.  WriteGeometries = void Function(GeometryContent output)

A function to write geometry data to
output
.  WriteProperties = void Function(PropertyContent output)

A function to write properties to
output
.  WriteSimpleGeometries = void Function(SimpleGeometryContent output)

A function to write simple geometry data to
output
.