Advertisement
Guest User

Untitled

a guest
May 24th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. bearingWithDistance: function(lat1, lng1, lat2, lng2) {
  2.  
  3.         let f1 = lat1, l1 = lng1, f2 = lat2, l2 = lng2;
  4.         let toRadian = Math.PI / 180;
  5.         let y = Math.sin((l2-l1)*toRadian) * Math.cos(f2*toRadian);
  6.         let x = Math.cos(f1*toRadian)*Math.sin(f2*toRadian) - Math.sin(f1*toRadian)*Math.cos(f2*toRadian)*Math.cos((l2-l1)*toRadian);
  7.         let brng = Math.atan2(y, x)*((180)/Math.PI);
  8.         brng += brng < 0 ? (360) : 0;
  9.  
  10.         let R = 6371; // kilometres
  11.         let deltaF = (f2 - f1)*toRadian;
  12.         let deltaL = (l2 - l1)*toRadian;
  13.         let a = Math.sin(deltaF/2) * Math.sin(deltaF/2) + Math.cos(f1*toRadian) * Math.cos(f2*toRadian) * Math.sin(deltaL/2) * Math.sin(deltaL/2);
  14.         let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  15.         let distance = R * c;
  16.  
  17.         return {bearing: brng.toFixed(1), distance: distance.toFixed(3)};
  18.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement