UNPKG

geolib

Version:

Library to provide basic geospatial operations like distance calculation, decoding of sexagesimal coordinates etc.

1 lines 1.09 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require("./getLatitude"));var _getLongitude=_interopRequireDefault(require("./getLongitude"));var _toRad=_interopRequireDefault(require("./toRad"));var _toDeg=_interopRequireDefault(require("./toDeg"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const getCenter=points=>{if(Array.isArray(points)===false||points.length===0){return false}const numberOfPoints=points.length;const sum=points.reduce((acc,point)=>{const pointLat=(0,_toRad.default)((0,_getLatitude.default)(point));const pointLon=(0,_toRad.default)((0,_getLongitude.default)(point));return{X:acc.X+Math.cos(pointLat)*Math.cos(pointLon),Y:acc.Y+Math.cos(pointLat)*Math.sin(pointLon),Z:acc.Z+Math.sin(pointLat)}},{X:0,Y:0,Z:0});const X=sum.X/numberOfPoints;const Y=sum.Y/numberOfPoints;const Z=sum.Z/numberOfPoints;return{longitude:(0,_toDeg.default)(Math.atan2(Y,X)),latitude:(0,_toDeg.default)(Math.atan2(Z,Math.sqrt(X*X+Y*Y)))}};var _default=exports.default=getCenter;