Помогите понять формулу рассчета дистанции по двум парам координат широта/долгота
☑
0
D_Pavel
27.07.15
✎
13:27
Рассчитывается дистанция по двум парам координат широта/долгота: latitude/longitude, a.lat/a.lng соответственно, если я правильно понял.
Кто может объяснить, зачем там синусы и косинусы?
Возможно я ошибаюсь, и это не расчет дистанции, но тогда что?
ROUND(
( 6378.13649 * 2 * ASIN(
SQRT( POWER( SIN( ( {$latitude} - ABS( a.lat ) ) * PI() / 180 / 2 ) , 2 ) + COS( {$latitude} * PI() / 180 ) *
COS( ABS( a.lat ) * PI() / 180 ) * POWER( SIN( ( {$longitude} - a.lng ) * PI() / 180 / 2 ) , 2 ) ) )
) * 1000
) AS distance
1
Маратыч
27.07.15
✎
13:30
(0) То, что Земля - шар, вы забыли? Оттуда и синусы-косинусы.
2
Маратыч
27.07.15
✎
13:30
(0) Смотрим сюда:
3
D_Pavel
27.07.15
✎
13:35
(1) Понял, спасибо.
4
D_Pavel
27.07.15
✎
13:39
типа поправка на то что ближе к северу градусы более плотно чем ближе к экватору.
5
Garikk
27.07.15
✎
13:47
там всё ещё сложнее (т.к. земля не шар)...но в общем да.
ещё и систем координат какоето жуткое количество существует
6
Маратыч
27.07.15
✎
13:50
(4) От тебя сегодня сплошные перлы сыпятся прям. В пятницу какую-нибудь тему создай :)
2 + 2 = 3.9999999999999999999999999999999...