我正在研究一个项目并且已经给出了一个方程式,但是,我发现很难变成可行的代码。
此等式给出两个纬度和长度点之间的距离,并以千米为单位返回近似距离。
def distance_between_two_point(lat1, lon1, lat2, lon2):
c = (float(lat1) - float(lat2)**2) + ((float(lon1) - float(lon2))**2)
# print(c) # Debugging Print
print(math.sqrt(abs(c)))
d = (6371 * math.pi/180) * math.sqrt(abs(c))
return d
我必须在每个变量上指定浮点数,因为它会抛出一个类型错误,即使只有浮点数被解析为函数。
我从这个函数得到的结果似乎不对,成千上万。结果应该是一个小于10km的浮点数。
latlon1和latlon 2的输入纬度介于(-35.29,-35.27)和经度介于(149.105,149.130)之间。
答案 0 :(得分:0)
我忘记了一个支架....对不起,对不起,即使在5个小时后也没注意到:(
def distance_between_two_point(lat1, lon1, lat2, lon2):
c = ((float(lat1) - float(lat2))**2) + ((float(lon1) - float(lon2))**2)
# print(c) # Debugging Print
print(math.sqrt(abs(c)))
d = (6371 * math.pi/180) * math.sqrt(abs(c))
return d