# geodesy 0.3.2 geodesy: ^0.3.2

Dart native js
Flutter Android iOS web

A Dart library for geodesic and trigonometric calculations working with points and paths

# Geodesy # A Dart library for implementing geodesic and trigonometric calculations based on a spherical Earth model for working with points and paths such as distances, bearings and destinations

## Getting Started #

``````geodesy:
``````

### Include the widget in your dart file #

``````import 'package:geodesy/geodesy.dart';
``````

## Usage #

### Geodesy() #

``````Geodesy geodesy = Geodesy();
``````

### LatLng(double latitude, double longitude) #

``````LatLng l = LatLng(22.308, 114.1716);
``````

## Methods #

### destinationPointByDistanceAndBearing(LatLng l, num distance, num bearing, [num radius]) #

Calculate a destination point given the distance and bearing. If raduis is not specified, Earth radius will be used.

``````LatLng distinationPoint = geodesy.destinationPointByDistanceAndBearing(l3, 2400, 420.2);
``````

### midPointBetweenTwoGeoPoints(LatLng l1, LatLng l2) #

Calcuate the midpoint bewteen teo geo points.

``````LatLng midpoint = geodesy.midPointBetweenTwoGeoPoints(l1, l2);
``````

### distanceBetweenTwoGeoPoints(LatLng l1, LatLng l2, [num radius]) #

Calculate the distance in meters between two geo points. If raduis is not specified, Earth radius will be used.

``````num distance = geodesy.distanceBetweenTwoGeoPoints(l1, l2);
``````

### bearingBetweenTwoGeoPoints(LatLng l1, LatLng l2) #

Calculate the bearing from point l1 to point l2.

``````num finalBearing = geodesy.finalBearingBetweenTwoGeoPoints(l1, l2);
``````

### finalBearingBetweenTwoGeoPoints(LatLng l1, LatLng l2) #

Calculate the final bearing from point l1 to point l2.

``````num finalBearing = geodesy.finalBearingBetweenTwoGeoPoints(l1, l2);
``````

``````num l1LatRadians = degreesToRadians(l1.lat);
``````

``````num degrees = radiansToDegrees(latRadians);
``````

### isGeoPointInBoudingBox(LatLng l, LatLng topLeft, LatLng bottomRight) #

Check if a given geo point is in the bouding box

``````bool inBoudingBox = geodesy.isGeoPointInBoudingBox(l1, l2, l3);
``````

### intersectionByPaths(LatLng l1, LatLng l2, num b1, num b2) #

Calculate the geo point of intersection of two given paths

``````LatLng intersectionByPaths = geodesy.intersectionByPaths(l1, l2, b1, b2);
``````

### crossTrackDistanceTo(LatLng l1, LatLng start, LatLng end, [num radius]) #

Calculate signed distance from a geo point to greate circle with start and end points

``````num distanceToGreatCircle = geodesy.crossTrackDistanceTo(l1, l2, l3);
``````

### isGeoPointInPolygon(LatLng l, List

Check if a given geo point is in the a polygon using even-odd rule algorithm

``````bool isGeoPointInPolygon = geodesy.isGeoPointInPolygon(l, poly);
``````

### pointsInRange(LatLng point, List

Get a list of points within a distance in meters from a given point

``````final point = LatLng(51.0, 0);
final pointsToCheck = <LatLng>[/* points here */];
final distance = 10000;
List<LatLng> geofencedPoints = geodesy.pointsInRange(point, pointsToCheck, distance);
``````
15
likes
100
pub points
92%
popularity

A Dart library for geodesic and trigonometric calculations working with points and paths