我正在嘗試實作演算法,該演算法將根據指南使用大圓距離公式計算兩點之間的距離
我的功能:
from math import sin, cos, radians
def get_great_circle_distance(first_coords, second_coords, radius):
"""
:param first_coords: (first_client_latitude, first_client_longitude) <- degrees
:param second_coords: (second_client_latitude, second_client_longitude) <- degrees
:param radius: planet radius
:return: distance
"""
la_1, lo_1 = map(radians, first_coords)
la_2, lo_2 = map(radians, second_coords)
denominator = cos(
cos(la_1) * cos(la_2) * cos(lo_1 - lo_2)
sin(la_1) * sin(la_2)
)
distance = radius / denominator
return distance
例如,我打電話:
distance = get_great_circle_distance((55, 28), (86, 70), 7)并期待~3.93km,但我得到 10.56897。
uj5u.com熱心網友回復:
鏈接公式使用 cos -1表示余弦函式的倒數。cos -1 (x) 與 1/cos(x) 不同。
它也被稱為arccos。在 Python 中,它被稱為acos。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/451710.html
下一篇:熊貓分組和日志添加
