distance.js 621 B

123456789101112131415161718
  1. export const calcDistance = (path) => {
  2. let distance = 0;
  3. for(let i=0; i<path.length-1; i++) {
  4. if (path[i]===undefined | path[i+1]===undefined){
  5. continue
  6. }
  7. var radlat1 = Math.PI * path[i][0]/180;
  8. var radlat2 = Math.PI * path[i+1][0]/180;
  9. var theta = path[i][1]-path[i+1][1];
  10. var radtheta = Math.PI * theta/180;
  11. var d = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
  12. if (d > 1) {
  13. d = 1;
  14. }
  15. distance += Math.acos(d) * 180/Math.PI * 60 * 1.1515 * 1.609344;
  16. }
  17. return distance
  18. }