Class: Geodesic

GeographicLib/Geodesic. Geodesic

Performs geodesic calculations on an ellipsoid of revolution. The routines for solving the direct and inverse problems return an object with some of the following fields set: lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12. See The library interface, "The results".

Constructor

new Geodesic(a, f)

Initialize a Geodesic object for a specific ellipsoid.

Parameters:
Name Type Description
a number

the equatorial radius of the ellipsoid (meters).

f number

the flattening of the ellipsoid. Setting f = 0 gives a sphere (on which geodesics are great circles). Negative f gives a prolate ellipsoid.

Properties:
Name Type Description
a number

the equatorial radius (meters).

f number

the flattening.

Source:
Throws:

an error if the parameters are illegal.

Example
var GeographicLib = require("geographiclib"),
    geod = GeographicLib.Geodesic.WGS84;
var inv = geod.Inverse(1,2,3,4);
console.log("lat1 = " + inv.lat1 + ", lon1 = " + inv.lon1 +
            ", lat2 = " + inv.lat2 + ", lon2 = " + inv.lon2 +
            ",\nazi1 = " + inv.azi1 + ", azi2 = " + inv.azi2 +
            ", s12 = " + inv.s12);

Methods

ArcDirect(lat1, lon1, azi1, a12, outmaskopt) → {object}

Solve the direct geodesic problem with arc length.

The lat1, lon1, azi1, and a12 fields of the result are always set. For details on the outmask parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees.

a12 number

the arc length from the first point to the second in degrees.

outmask bitmask <optional>
STANDARD

which results to include.

Source:
Returns:

the requested results.

Type
object

ArcDirectLine(lat1, lon1, azi1, a12, capsopt) → {object}

Define a GeodesicLine in terms of the direct geodesic problem specified in terms of arc length.

This function sets point 3 of the GeodesicLine to correspond to point 2 of the direct geodesic problem. For details on the caps parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees. degrees.

a12 number

the arc length between point 1 and point 2 (degrees); it can be negative.

caps bitmask <optional>
STANDARD | DISTANCE_IN

which capabilities to include.

Source:
Returns:

the GeodesicLine object

Type
object

Direct(lat1, lon1, azi1, s12, outmaskopt) → {object}

Solve the direct geodesic problem.

The lat1, lon1, azi1, s12, and a12 fields of the result are always set. For details on the outmask parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees.

s12 number

the distance from the first point to the second in meters.

outmask bitmask <optional>
STANDARD

which results to include.

Source:
Returns:

the requested results.

Type
object

DirectLine(lat1, lon1, azi1, s12, capsopt) → {object}

Define a GeodesicLine in terms of the direct geodesic problem specified in terms of distance.

This function sets point 3 of the GeodesicLine to correspond to point 2 of the direct geodesic problem. For details on the caps parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees. degrees.

s12 number

the distance between point 1 and point 2 (meters); it can be negative.

caps bitmask <optional>
STANDARD | DISTANCE_IN

which capabilities to include.

Source:
Returns:

the GeodesicLine object

Type
object

GenDirect(lat1, lon1, azi1, arcmode, s12_a12, outmaskopt) → {object}

Solve the general direct geodesic problem.

The lat1, lon1, azi1, and a12 fields of the result are always set; s12 is included if arcmode is false. For details on the outmask parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees.

arcmode bool

is the next parameter an arc length?

s12_a12 number

the (arcmode ? arc length : distance) from the first point to the second in (arcmode ? degrees : meters).

outmask bitmask <optional>
STANDARD

which results to include.

Source:
Returns:

the requested results.

Type
object

GenDirectLine(lat1, lon1, azi1, arcmode, s12_a12, capsopt) → {object}

Define a GeodesicLine in terms of the direct geodesic problem specified in terms of either distance or arc length.

This function sets point 3 of the GeodesicLine to correspond to point 2 of the direct geodesic problem. For details on the caps parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees. degrees.

arcmode bool

boolean flag determining the meaning of the s12_a12.

s12_a12 number

if arcmode is false, this is the distance between point 1 and point 2 (meters); otherwise it is the arc length between point 1 and point 2 (degrees); it can be negative.

caps bitmask <optional>
STANDARD | DISTANCE_IN

which capabilities to include.

Source:
Returns:

the GeodesicLine object

Type
object

Inverse(lat1, lon1, lat2, lon2, outmaskopt) → {object}

Solve the inverse geodesic problem.

The lat1, lon1, lat2, lon2, and a12 fields of the result are always set. For details on the outmask parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

lat2 number

the latitude of the second point in degrees.

lon2 number

the longitude of the second point in degrees.

outmask bitmask <optional>
STANDARD

which results to include.

Source:
Returns:

the requested results

Type
object

InverseLine(lat1, lon1, lat2, lon2, capsopt) → {object}

Define a GeodesicLine in terms of the inverse geodesic problem.

This function sets point 3 of the GeodesicLine to correspond to point 2 of the inverse geodesic problem. For details on the caps parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

lat2 number

the latitude of the second point in degrees.

lon2 number

the longitude of the second point in degrees.

caps bitmask <optional>
STANDARD | DISTANCE_IN

which capabilities to include.

Source:
Returns:

the GeodesicLine object

Type
object

Line(lat1, lon1, azi1, capsopt) → {object}

Create a GeodesicLine object.

For details on the caps parameter, see The library interface, "The outmask and caps parameters".

Parameters:
Name Type Attributes Default Description
lat1 number

the latitude of the first point in degrees.

lon1 number

the longitude of the first point in degrees.

azi1 number

the azimuth at the first point in degrees. degrees.

caps bitmask <optional>
STANDARD | DISTANCE_IN

which capabilities to include.

Source:
Returns:

the GeodesicLine object

Type
object

Polygon(polylineopt) → {object}

Create a PolygonArea object.

Parameters:
Name Type Attributes Default Description
polyline bool <optional>
false

if true the new PolygonArea object describes a polyline instead of a polygon.

Source:
Returns:

the PolygonArea object

Type
object