UNPKG

react-vr-geolocate

Version:

35 lines (30 loc) 1.34 kB
Object.defineProperty(exports,"__esModule",{value:true});exports.toRadians=exports.distanceBetweenPoints=exports.midpoint=exports.to3dLocation=undefined;var _rotationOffset=require("../consts/rotationOffset"); var to3dLocation=exports.to3dLocation=function to3dLocation(coords,radius){ var modLon=coords.lon+_rotationOffset.overlayLonOffset; var cosLat=Math.cos(toRadians(coords.lat)); var sinLat=Math.sin(toRadians(coords.lat)); var cosLon=Math.cos(toRadians(modLon)); var sinLon=Math.sin(toRadians(modLon)); return[ radius*cosLat*sinLon, radius*sinLat, radius*cosLat*cosLon]; }; var midpoint=exports.midpoint=function midpoint(coord1,coord2,percent){ var midpoint={coordinates:{lat:coord1.lat+(coord2.lat-coord1.lat)*percent,lon:coord1.lon+(coord2.lon-coord1.lon)*percent}}; return midpoint; }; var distanceBetweenPoints=exports.distanceBetweenPoints=function distanceBetweenPoints(coord1,coord2,radius){ var R=radius; var φ1=toRadians(coord1.lat); var φ2=toRadians(coord2.lat); var Δφ=toRadians(coord2.lat-coord1.lat); var Δλ=toRadians(coord2.lon-coord1.lon); var a=Math.sin(Δφ/2)*Math.sin(Δφ/2)+Math.cos1)*Math.cos2)*Math.sin(Δλ/2)*Math.sin(Δλ/2); var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)); var d=R*c; return d; }; var toRadians=exports.toRadians=function toRadians(angle){ return angle*(Math.PI/180); };