Имя: Пароль:
IT
Веб-мастеринг
Помогите понять формулу рассчета дистанции по двум парам координат широта/долгота
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) Смотрим сюда: http://gis-lab.info/qa/great-circles.html
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...