Я тестирую различные формулы для поиска определенных точек на Земле в пределах заданного радиуса от заданной широты / долготы. Я использовал «сферический закон косинусов» и то, что я считаю реализацией Хаверсина.
Для следующих формул это переменные:
[$ lat / $ lon] = пункт отправления
[широта / долгота] = вторая точка
[$ radius] = радиус
Сферический закон косинусов
3959 * acos( cos( radians('.$lat.') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('.$lon.') ) + sin( radians('.$lat.') ) * sin( radians( latitude ) ) ) ) <= '.$radius.';
Гаверсин (по крайней мере, я так думаю!)
3959*3.1415926*sqrt((latitude-'.$lat.')*(latitude-'.$lat.') + cos(latitude/57.29578)*cos('.$lat.'/57.29578)*(longitude-'.$lon.')*(longitude-'.$lon.'))/180) <= '.$radius.';';
Сначала я наткнулся на много информации, в которой говорилось, что Хаверсин был золотым стандартом в отношении точности. Однако существует также мнение, что сферический закон косинусов более точен, чем хаверсинус, если измеряемое расстояние превышает 5 метров или около того. Более того, некоторые говорят, что Винсенти превосходит их по точности.
Три вопроса:
Моя формула Haversine на самом деле Haversine или что-то еще?
Есть мысли о том, какой из них наиболее точный?
Может ли кто-нибудь предоставить мне формулировку Винсенти в соответствии с приведенными выше форумами?
Благодарность!