LatLongUtils class

Utility class for geographic coordinate calculations and geometric operations.

This class provides a comprehensive set of static methods for working with geographic coordinates, including:

  • Point-in-polygon testing
  • Line segment intersections
  • Distance calculations
  • Coordinate system conversions
  • Geometric analysis of paths and polygons

All methods are static and the class cannot be instantiated.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

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.
inherited

Static Properties

CONVERSION_FACTOR double
Conversion factor between degrees and microdegrees (10^6).
final
DELIMITER String
Standard delimiter for coordinate string parsing.
final
EQUATORIAL_RADIUS double
WGS84 equatorial radius in meters.
final
NANO_CONVERSION_FACTOR double
Conversion factor between degrees and nanodegrees (10^9).
final
nearDistance double
maximum distance in lat or long direction to treat two points as equal. This is used to find closed way where the first and last point are near but not equal.
final
POLAR_RADIUS double
WGS84 polar radius in meters. Used for accurate distance computations on the Earth's ellipsoid.
final

Static Methods

combine(Waypath firstWaypath, List<ILatLong> otherLatLongs) bool
adds the otherLatLongs to firstWaypath in the correct order. Returns true if successful. Note that firstWaypath may be changed whereas otherLatLongs is never gonna be changed.
contains(List<ILatLong> latLongs, ILatLong latLong) bool
Tests if a point lies within a polygon using the ray casting algorithm.
degreesToMicrodegrees(double coordinate) int
Converts degrees to microdegrees.
degreesToNanodegrees(double coordinate) int
Converts degrees to nanodegrees.
distanceSegmentPoint(double startX, double startY, double endX, double endY, double pointX, double pointY) double
Returns the distance between the given segment and point.
doesBoundaryIntersectPolygon(BoundingBox boundary, List<ILatLong> polygon) bool
Checks if a bounding box (boundary) intersects with a polygon.
doLinesIntersect(ILatLong line1Start, ILatLong line1End, ILatLong line2Start, ILatLong line2End) bool
Checks if two line segments intersect. They do NOT intersect if the intersection point is outside of the given start-end points.
euclideanDistance(ILatLong latLong1, ILatLong latLong2) double
Calculates Euclidean distance between two coordinates in degrees.
euclideanDistanceSquared(ILatLong latLong1, ILatLong latLong2) double
getLineIntersection(ILatLong line1Start, ILatLong line1End, ILatLong line2Start, ILatLong line2End) ILatLong?
Findet den Schnittpunkt von zwei Liniensegmenten.
getLineIntersectionHorizontal(ILatLong line1Start, ILatLong line1End, ILatLong line2Start, ILatLong line2End) ILatLong?
Finds the intersection point of two line segments whereas the second line segment is horizontal. This is a method which may be faster than the generic one in the case when the first line is above or below the second line.
getLineIntersectionVertical(ILatLong line1Start, ILatLong line1End, ILatLong line2Start, ILatLong line2End) ILatLong?
isBoundaryInsidePolygon(BoundingBox boundary, List<ILatLong> polygon) bool
Checks if a bounding box is completely contained within a polygon.
isClosedWay(List<ILatLong> latLongs) bool
Find if this way is closed.
isEqual(ILatLong me, ILatLong other) bool
isNear(ILatLong me, ILatLong other) bool
Returns true if the other point is equal or near this point. We use 0.00005 which is a distance of maximum 5.57m at the equator in each lat/lon direction
isPointInPolygon(ILatLong point, List<ILatLong> polygon) bool
Determines if a point is inside or outside a polygon.
microdegreesToDegrees(int coordinate) double
Converts microdegrees to degrees.
nanodegreesToDegrees(int coordinate) double
Converts nanodegrees to degrees.
nearestSegmentPoint(double startX, double startY, double endX, double endY, double pointX, double pointY) LatLong
Returns a point on the segment nearest to the specified point.
printLatLongs(Way way) → void
A convenience method to print a list of lat/long pairs
printWaypaths(Iterable<Waypath> waypaths) String
roundToMicrodegreees(double value) double