import { GeoLocation } from './GeoLocation';
/**
* A class for various location calculations
* Most of the code in this class is ported from Chris Veness'
* LGPL Javascript Implementation
*
* @author © Eliyahu Hershfeld 2009 - 2020
* @deprecated All methods in this class are available in the {@link GeoLocation} class, and this class that duplicates that
* code will be removed in a future release.
*/
export declare class GeoLocationUtils {
/**
* Constant for a distance type calculation.
* @see #getGeodesicDistance(GeoLocation, GeoLocation)
*/
private static readonly DISTANCE;
/**
* Constant for an initial bearing type calculation.
* @see #getGeodesicInitialBearing(GeoLocation, GeoLocation)
*/
private static readonly INITIAL_BEARING;
/**
* Constant for a final bearing type calculation.
* @see #getGeodesicFinalBearing(GeoLocation, GeoLocation)
*/
private static readonly FINAL_BEARING;
/**
* Calculate the geodesic initial bearing between this Object and
* a second Object passed to this method using Thaddeus
* Vincenty's inverse formula See T Vincenty, "Direct and
* Inverse Solutions of Geodesics on the Ellipsoid with application of nested equations", Survey Review, vol XXII
* no 176, 1975.
*
* @param location
* the initial location
* @param destination
* the destination location
* @return the geodesic bearing
*/
static getGeodesicInitialBearing(location: GeoLocation, destination: GeoLocation): number;
/**
* Calculate the geodesic final bearing between this Object
* and a second Object passed to this method using Thaddeus Vincenty's
* inverse formula See T Vincenty, "Direct and Inverse Solutions of Geodesics
* on the Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975.
*
* @param location
* the initial location
* @param destination
* the destination location
* @return the geodesic bearing
*/
static getGeodesicFinalBearing(location: GeoLocation, destination: GeoLocation): number;
/**
* Calculate geodesic distance in Meters
* between this Object and a second Object passed to this method using Thaddeus Vincenty's inverse formula See T Vincenty,
* "Direct and Inverse Solutions of Geodesics on the
* Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975. This uses the
* WGS-84 geodetic model.
* @param location
* the initial location
* @param destination
* the destination location
* @return the geodesic distance in Meters
*/
static getGeodesicDistance(location: GeoLocation, destination: GeoLocation): number;
/**
* Calculates the initial geodesic bearing, final bearing or
* geodesic distance using Thaddeus Vincenty's inverse formula See T Vincenty, "Direct and Inverse Solutions of Geodesics on the Ellipsoid
* with application of nested equations", Survey Review, vol XXII no 176, 1975.
*
* @param location
* the initial location
* @param destination
* the destination location
* @param formula
* This formula calculates initial bearing ({@link #INITIAL_BEARING}),
* final bearing ({@link #FINAL_BEARING}) and distance ({@link #DISTANCE}).
* @return
* the geodesic distance, initial or final bearing (based on the formula passed in) between the location
* and destination in Meters
* @see #getGeodesicDistance(GeoLocation, GeoLocation)
* @see #getGeodesicInitialBearing(GeoLocation, GeoLocation)
* @see #getGeodesicFinalBearing(GeoLocation, GeoLocation)
*/
private static vincentyFormula;
/**
* Returns the rhumb line
* bearing from the current location to the GeoLocation passed in.
*
* @param location
* the initial location
* @param destination
* the destination location
* @return the bearing in degrees
*/
static getRhumbLineBearing(location: GeoLocation, destination: GeoLocation): number;
/**
* Returns the rhumb line distance from the current
* location to the GeoLocation passed in. Ported from Chris Veness'
* Javascript Implementation.
*
* @param location
* the initial location
* @param destination
* the destination location
* @return the distance in Meters
*/
static getRhumbLineDistance(location: GeoLocation, destination: GeoLocation): number;
}