geolocation-utils
Version:
A utility library for calculations with geolocations
50 lines (44 loc) • 2.9 kB
TypeScript
declare module 'geolocation-utils' {
interface LocationHeadingSpeed {location: Location, speed: number, heading: number}
interface LatLon {lat: number, lon: number}
interface LatLng {lat: number, lng: number}
interface LatitudeLongitude {latitude: number, longitude: number}
type LonLatTuple = [number, number]
interface BoundingBox {topLeft: LatitudeLongitude, bottomRight: LatitudeLongitude}
interface HeadingDistance {heading: number, distance: number}
interface TimeDistance {time: number, distance: number}
type Location = LatLon | LatLng | LatitudeLongitude | LonLatTuple
export function createLocation(latitude: number, longitude: number, type: string) : LatLon
export function getLatitude(location: Location) : LatLng
export function getLocationType(location: Location) : string
export function getLongitude(location: Location) : LatLng
export function isEqual(location1: Location, location2: Location, epsilon: number) : boolean
export function isLatLon(object: Location) : boolean
export function isLatLng(object: Location) : boolean
export function isLatitudeLongitude(object: Location) : boolean
export function isLonLatTuple(object: Location) : boolean
export function toLatLng(location: Location) : LatLng
export function toLatLon(location: Location) : LatLon
export function toLatitudeLongitude(location: Location) : LatitudeLongitude
export function toLonLatTuple(location: Location) : LonLatTuple
export function average(locations: Location[]): Location | null
export function headingDistanceTo (from: Location, to: Location) : HeadingDistance
export function headingTo(from: Location, to: Location) : number
export function distanceTo(from: Location, to: Location) : number
export function getBoundingBox(locations: Location[], margin: number): BoundingBox
export function insideBoundingBox(location: Location, boundingBox: BoundingBox): boolean
export function insideCircle(location: Location, center: Location, radius: number) : boolean
export function insidePolygon(location: Location, polygon: Location[]) : boolean
export function moveTo(from: Location, headingDistance: HeadingDistance): LatLon
export function cpa(track1: LocationHeadingSpeed, track2: LocationHeadingSpeed) : TimeDistance
export function normalizeHeading(heading: number) : number
export function normalizeLatitude(latiude: number) : number
export function normalizeLongitude(longitude: number) : number
export function normalizeLocation(location: Location): LatLon
export function degToRad(angle: number) : number
export function radToDeg(angle: number) : number
export function knotsToMeterPerSecond(knots: number) : number
export function meterPerSecondToKnots(meterPerSecond: number) : number
export function knotsToKmPerHour(knots: number) : number
export function kmPerHourToKnots(kmPerHour: number) : number
}