Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function distance(fA, lA, fB, lB) {
- // перевести координаты в радианы
- var lat1 = fA * Math.PI / 180;
- var lat2 = fB * Math.PI / 180;
- var long1 = lA * Math.PI / 180;
- var long2 = lB * Math.PI / 180;
- // косинусы и синусы широт и разницы долгот
- var cl1 = Math.cos(lat1);
- var cl2 = Math.cos(lat2);
- var sl1 = Math.sin(lat1);
- var sl2 = Math.sin(lat2);
- var delta = long2 - long1;
- var cdelta = Math.cos(delta);
- var sdelta = Math.sin(delta);
- // вычисления длины большого круга
- var y = Math.sqrt(Math.pow(cl2 * sdelta, 2) + Math.pow(cl1 * sl2 - sl1 * cl2 * cdelta, 2));
- var x = sl1 * sl2 + cl1 * cl2 * cdelta;
- return Math.atan2(y, x) * 6372795 /* earth radius */;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement