Advertisement
Guest User

Посчитать расстояние между координатами

a guest
Feb 27th, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.74 KB | None | 0 0
  1.  
  2. $EARTH_RADIUS = 6372795;
  3. $φA = '57.8185';
  4. $λA = '28.3253';
  5.  
  6. $φB = $node->field_lat['und'][0]['value'];
  7. $λB = $node->field_lon['und'][0]['value'];
  8.  
  9. $lat1 = $φA * pi() / 180;
  10. $lat2 = $φB * pi() / 180;
  11. $long1 = $λA * pi() / 180;
  12. $long2 = $λB * pi() / 180;
  13.  
  14. // косинусы и синусы широт и разницы долгот
  15. $cl1 = cos($lat1);
  16. $cl2 = cos($lat2);
  17. $sl1 = sin($lat1);
  18. $sl2 = sin($lat2);
  19. $delta = $long2 - $long1;
  20. $cdelta = cos($delta);
  21. $sdelta = sin($delta);
  22.  
  23. // вычисления длины большого круга
  24. $y = sqrt(pow($cl2 * $sdelta, 2) + pow($cl1 * $sl2 - $sl1 * $cl2 * $cdelta, 2));
  25. $x = $sl1 * $sl2 + $cl1 * $cl2 * $cdelta;
  26.  
  27. $ad = atan2($y, $x);
  28. $dist = $ad * $EARTH_RADIUS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement