import { DistanceCalculator } from './calculator/DistanceCalculator'; import { LatLng } from './LatLng'; import { LengthUnit } from './LengthUnit'; /** * Calculates the distance between points. * * Default algorithm is [distanceWithVincenty], default radius is [EARTH_RADIUS] * * final Distance distance = new Distance(); * * // km = 423 * final int km = distance.as(LengthUnit.Kilometer, * new LatLng(52.518611,13.408056),new LatLng(51.519475,7.46694444)); * * // meter = 422592 * final int meter = distance(new LatLng(52.518611,13.408056),new LatLng(51.519475,7.46694444)); */ export declare class Distance implements DistanceCalculator { private readonly roundResult; /** Returns either [Haversine] oder [Vincenty] calculator */ private readonly calculator; readonly radius: number; constructor({ radius, roundResult, calculator }?: { radius?: number; roundResult?: boolean; calculator?: DistanceCalculator; }); /** * Shortcut for creating a Vincenty-Distance-Calculator * * const calculator = Distance.useVincenty() */ static useVincenty({ radius, roundResult, }?: { radius?: number; roundResult?: boolean; }): Distance; /** * Shortcut for creating a Haversine-Distance-Calculator * * const calculator = Distance.useHaversine() */ static useHaversine({ radius, roundResult, }?: { radius?: number; roundResult?: boolean; }): Distance; /** * Converts the distance to the given [LengthUnit] * * const km = distance.as(LengthUnit.Kilometer, * new LatLng(52.518611,13.408056),new LatLng(51.519475,7.46694444)); */ as(unit: LengthUnit, p1: LatLng, p2: LatLng): number; /** * Computes the distance between two points. * * The function uses the [DistanceAlgorithm] specified in the CTOR */ distance(p1: LatLng, p2: LatLng): number; /** * Returns the great circle bearing (direction) in degrees to the next point ([p2]) * * Find out about the difference between rhumb line and * great circle bearing on * [Wikipedia](http://en.wikipedia.org/wiki/Rhumb_line#General_and_mathematical_description). * * final Distance distance = const Distance(); * * final LatLng p1 = new LatLng(0.0, 0.0); * final LatLng p2 = new LatLng(-90.0, 0.0); * * expect(distance.direction(p1, p2), equals(180)); */ bearing(p1: LatLng, p2: LatLng): number; /** * Returns a destination point based on the given [distance] and [bearing] * * Given a [from] (start) point, initial [bearing], and [distance], * this will calculate the destination point and * final bearing travelling along a (shortest distance) great circle arc. * * final Distance distance = const Distance(); * * final num distanceInMeter = (EARTH_RADIUS * math.PI / 4).round(); * * final p1 = new LatLng(0.0, 0.0); * final p2 = distance.offset(p1, distanceInMeter, 180); * * Bearing: Left - 270°, right - 90°, up - 0°, down - 180° */ offset(from: LatLng, distanceInMeter: number, bearing: number): LatLng; private round; }