- Регистрация
- 13 Фев 2019
- Сообщения
- 52
- Лучшие ответы
- 0
- Репутация
- 0
Здравствуйте. Хотел попробовать сделать ф-ю расчета расстояния между двумя географическими координатами (широта и долгота), но так и не разобрался как.
В интернете нашел систему расчета:
Собственно сам вопрос, как реализовать в среде Pawn?
В интернете нашел систему расчета:
PHP:
// Радиус земли
define('EARTH_RADIUS', 6372795);
/*
* Расстояние между двумя точками
* $A1, $A2 - широта, долгота 1-й точки,
* $B1, $B2 - широта, долгота 2-й точки
*/
function calculateTheDistance ($A1, $A2, $B1, $B2) {
// перевести координаты в радианы
$lat1 = $A1 * M_PI / 180;
$lat2 = $B1 * M_PI / 180;
$long1 = $A2 * M_PI / 180;
$long2 = $B2 * M_PI / 180;
// косинусы и синусы широт и разницы долгот
$cl1 = cos($lat1);
$cl2 = cos($lat2);
$sl1 = sin($lat1);
$sl2 = sin($lat2);
$delta = $long2 - $long1;
$cdelta = cos($delta);
$sdelta = sin($delta);
// вычисления длины большого круга
$y = sqrt(pow($cl2 * $sdelta, 2) + pow($cl1 * $sl2 - $sl1 * $cl2 * $cdelta, 2));
$x = $sl1 * $sl2 + $cl1 * $cl2 * $cdelta;
$ad = atan2($y, $x);
$dist = $ad * EARTH_RADIUS;
return $dist;
}