gps_history library

The GPS History library provides facilities to store and query GPS points. This can be used to for example build a location tracking app.

Classes

EarthRadiusMeters
Class that operates as just a container for different types of Earth radii, expressed in meters.
GpcCompact<T extends GpsPoint>
Implements compact storage for GpsPoint elements.
GpcCompactGpsMeasurement
Implements efficient storage for GpsMeasurement elements.
GpcCompactGpsPoint
Implements efficient storage for GpsPoint elements.
GpcCompactGpsStay
Implements efficient storage for GpsStay elements.
GpcEfficient<T extends GpsPoint>
A space-efficient GpsPointsCollection implementation.
GpcListBased<T extends GpsPoint>
A collection that internally stores the points in a basic list.
GpsMeasurement
GPS point with additional information related to the measurement.
GpsPoint
Represents the most basic GPS location.
GpsPointsCollection<T extends GpsPoint>
Stores GPS points with read/write access.
GpsPointsView<T extends GpsPoint>
Read-only view on the GPS points stored in a GpsPointsCollection.
GpsStay
GPS point representing a stay in that location for some amount of time.
GpsTime
Represents a time value for GpsPoint and children.
GpvQuerier<T extends GpsPoint>
A view that internally only stores indices in a referenced collections, and queries the collection for the points when required.

Enums

DistanceCalcMode
SortingEnforcement
Indicates how the sorting requirement for GpsPointsCollection should behave.
TimeComparisonResult
Used as result type for time comparison.

Constants

earthFlattening → const double
maxAngleForSuperFastDeg → const int
Up to what angle (roughly) is the fast method regarded as reliable (see documentation of this module for the considerations).
metersPerDegreeLatitude → const double

Functions

compareIntRepresentationTime(int timeA, int timeB) TimeComparisonResult
Compares two time values and returns the result.
comparePointTimes(GpsPoint itemA, GpsPoint itemB) TimeComparisonResult
Compares the time values of itemA and itemB and returns the result.
compareTime(GpsTime timeA, GpsTime timeB) TimeComparisonResult
Compares two time values and returns the result.
compareTimeSpans({required int startA, required int endA, required int startB, required int endB}) TimeComparisonResult
Compares time spans representing for example two GpsStay entities.
degToRad(double deg) double
Converts a value deg specified in degrees to radians.
deltaLatitudeAbs(double latADeg, double latBDeg) double
Returns the shortest latitude angle distance (in degrees) between two points A and B with latitudes given by latADeg respectively latBDeg, both in degrees.
deltaLongitudeAbs(double longADeg, double longBDeg) double
Returns the shortest longitude angle distance (in degrees) between two points A and B with longitudes given by longADeg respectively longBDeg, both in degrees.
diffIntTime({required int startTimeA, required int? endTimeA, required int timeB}) int
Calculates the difference between timeB and a time or time span defined by a startTimeA and optionally, if it's a span rather than an instance, an endTimeA. The result will be negative and equal to endTimeA-timeB if A is before B, positive and equal to startTimeA-timeB is A is after B.
diffTime({required GpsTime startTimeA, required GpsTime? endTimeA, required GpsTime timeB}) int
Like diffIntTime, but with parameters provided in GpsTime rather than directly as integers.
distance(GpsPoint pointA, GpsPoint pointB, [DistanceCalcMode mode = DistanceCalcMode.auto]) double
Calculates the distance between pointA and pointB, optionally using a specific calculation mode to balance speed and accuracy.
distanceCoords(double latADeg, double longADeg, double latBDeg, double longBDeg, DistanceCalcMode mode) double
distanceCoordsEquirectangular(double latADeg, double longADeg, double latBDeg, double longBDeg) double
Calculates an approximation of the distance in meters between point A at spherical (latitude, longitude) coordinates (latADeg, longADeg) and B at (latBDeg, longBDeg) - all in degrees, using the equirectangular approximation.
distanceCoordsHaversine(double latADeg, double longADeg, double latBDeg, double longBDeg, {dynamic earthRadiusMeters = EarthRadiusMeters.mean}) double
Calculates the distance in meters between point A at spherical (latitude, longitude) coordinates (latADeg, longADeg) and B at (latBDeg, longBDeg) - all in degrees, using the haversine formula.
distanceCoordsLambert(double latADeg, double longADeg, double latBDeg, double longBDeg) double
Calculates the distance in meters between point A at spherical (latitude, longitude) coordinates (latADeg, longADeg) and B at (latBDeg, longBDeg) - all in degrees, using Lambert's formula for maximum accuracy, taking into account the earth's ellipsoid shape.
distanceCoordsSuperFast(double latADeg, double longADeg, double latBDeg, double longBDeg) double
Calculates an approximation of the distance in meters between point A at spherical (latitude, longitude) coordinates (latADeg, longADeg) and B at (latBDeg, longBDeg) - all in degrees.
getMetersPerLongitudeDegAtLatitudeDeg(dynamic latitudeDeg) double
opposite(TimeComparisonResult r) TimeComparisonResult
Returns the opposite of r.
radToDeg(double rad) double
Converts a value rad specified in radians to degrees.

Typedefs

DistanceCalculateFunc = double Function(double latADeg, double longADeg, double latBDeg, double longBDeg)

Exceptions / Errors

GpsHistoryException
Exception class that can act as ancestor for exceptions raised by
GpsInvalidValue
Exception class for invalid values.
GpsPointsViewSortingException
Exception class for sorting issues in GpsPointsView (sub)classes.