gpt4 book ai didi

python - 使用Python从数据库表中测量纬度和经度坐标之间的距离

转载 作者:行者123 更新时间:2023-11-29 15:53:00 25 4
gpt4 key购买 nike

我想从数据库表中计算纬度和经度坐标之间的距离,表中的第一个查询结果作为其他纬度和经度位置的引用。 Db 表将由 "USR,REF,LONG,LAT"组成。

最终我的目标是制作一个 GUI,用户可以在其中查找 REF 记录。然后用户将从表中进行选择。并根据所选记录(将用作其他经纬度点的引用),将显示引用纬度和经度点与其他纬度和经度点之间的距离差异。

我尝试过半正矢公式。但我看到大多数教程仅显示两个用于远程测量的纬度和地段

import sys
import math


def haversine(lon1, lat1, lon2, lat2):

# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2])

# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1

a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) *math.sin(dlon/2)**2

c = 2 * math.asin(math.sqrt(a))

km = 6367 * c

return km

conn = pypyodbc.connect(# My MsAccessDB Location)


cursor = conn.cursor()

query = "SELECT*FROM Test_dist ORDER BY Licensee"

cursor.execute(query)

results = cursor.fetchall()


for x in results:

print(x) ```



OUTPUT


(' ABC JIM', 469.55, 18.533333, -33.85)
(' CALLY', 383.5125, 23.460278, -33.234722)
(' ROSS', 469.55, 21.983333, -34.166667)
(' SALLY M', 383.5625, 23.2325, -33.072222)
('KRACE', 400.36, 23.5688, -33.045668)
('LEEMER', 202.36, 23.2566, -33.158859)



When i run the code it displays all my records . I am not sure how to implement this into the haversine function thou as I would need to do it from my database table .

最佳答案

如果您想将每一行与第一行的经度和纬度进行比较,请执行以下操作。

for i in range(1,len(results)):
print haversine(results[0][2],results[0][3],results[i][2]results[i][3])

关于python - 使用Python从数据库表中测量纬度和经度坐标之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56676468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com