random-flight-generator
Version:
A tool for generating random flights.
61 lines (60 loc) • 2.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Flight = void 0;
var FlightMath_1 = require("./FlightMath");
var MapCoordinate_1 = require("./MapCoordinate");
var Flight = /** @class */ (function () {
function Flight(departure, arrival) {
this.departure = departure;
this.arrival = arrival;
}
Flight.prototype.getDistance = function () {
var point1 = new MapCoordinate_1.MapCoordinate(this.departure.lat, this.departure.lon);
var point2 = new MapCoordinate_1.MapCoordinate(this.arrival.lat, this.arrival.lon);
var distance = FlightMath_1.FlightMath.getDistance(point1, point2);
return FlightMath_1.FlightMath.metersToNauticalMiles(distance);
};
Flight.prototype.getBearing = function () {
var point1 = new MapCoordinate_1.MapCoordinate(this.departure.lat, this.departure.lon);
var point2 = new MapCoordinate_1.MapCoordinate(this.arrival.lat, this.arrival.lon);
return FlightMath_1.FlightMath.getBearing(point1, point2);
};
Flight.prototype.isValid = function () {
return (this.departure && this.arrival && this.departure !== this.arrival);
};
Flight.prototype.getElevationChange = function () {
return this.arrival.elevation - this.departure.elevation;
};
Flight.prototype.toJson = function () {
return {
departure: this.departure.toJson(),
arrival: this.arrival.toJson(),
bearing: this.getBearing(),
distance: this.getDistance(),
isValid: this.isValid(),
elevationChange: this.getElevationChange(),
};
};
Flight.prototype.print = function () {
if (this.departure && this.arrival) {
console.log('');
console.log('Departure');
console.log('-----------------------------------');
this.departure.print();
console.log('');
console.log('');
console.log('Arrival');
console.log('-----------------------------------');
this.arrival.print();
console.log('');
console.log('');
console.log('Flight Details');
console.log('-----------------------------------');
console.log("Flight distance: " + this.getDistance().toFixed(2) + " nautical miles");
console.log("Bearing: " + this.getBearing().toFixed(0) + " degrees");
console.log("Elevation change: " + (this.arrival.elevation - this.departure.elevation) + " feet");
}
};
return Flight;
}());
exports.Flight = Flight;