@sports-alliance/sports-lib
Version:
A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc
40 lines (39 loc) • 1.86 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeoLibAdapter = void 0;
var getPreciseDistance_1 = __importDefault(require("geolib/es/getPreciseDistance"));
var getDistance_1 = __importDefault(require("geolib/es/getDistance"));
var findNearest_1 = __importDefault(require("geolib/es/findNearest"));
var GeoLibAdapter = /** @class */ (function () {
function GeoLibAdapter() {
this.findNearest = findNearest_1.default;
}
GeoLibAdapter.prototype.getDistance = function (positionArray, precise, accuracy) {
if (precise === void 0) { precise = false; }
if (accuracy === void 0) { accuracy = 0.1; }
var distance = 0;
var excludeFirstPointsArray = positionArray.slice(1);
var firstPosition = positionArray[0];
for (var _i = 0, excludeFirstPointsArray_1 = excludeFirstPointsArray; _i < excludeFirstPointsArray_1.length; _i++) {
var nextPosition = excludeFirstPointsArray_1[_i];
var firstPositionAsDecimal = {
longitude: firstPosition.longitudeDegrees,
latitude: firstPosition.latitudeDegrees
};
var nextPositionAsDecimal = {
longitude: nextPosition.longitudeDegrees,
latitude: nextPosition.latitudeDegrees
};
distance += precise
? getPreciseDistance_1.default(firstPositionAsDecimal, nextPositionAsDecimal, accuracy)
: getDistance_1.default(firstPositionAsDecimal, nextPositionAsDecimal, accuracy);
firstPosition = nextPosition;
}
return distance;
};
return GeoLibAdapter;
}());
exports.GeoLibAdapter = GeoLibAdapter;