~~557 2022-10-27 18:45 采纳率: 76.7%

# 后一时间点的经纬度减去前一时间点的经纬度求得两点之间的距离

#根据经纬度计算距离
from math import radians, cos, sin, asin,sqrt
import pandas as pd
def geodistance(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])  # 将经纬度转化为弧度
dlon = lon2-lon1
dlat = lat2-lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
distance = 2*asin(sqrt(a))*6371
return distance
hangshu = place_name.shape[0]
distance_list = []
for i in range(hangshu):
print(i,'/',hangshu)
lon1 = place_name.iloc[i,1]
lat1 = place_name.iloc[i,2]
lon2 = place_name.iloc[i,3]
lat2 = place_name.iloc[i,4]
distance_start_end = geodistance(lon1=lon1,lat1=lat1,lon2=lon2,lat2=lat2)
distance_list.append(distance_start_end)
df = pd.DataFrame({'date':place_name.iloc[:,0],'lon1':place_name.iloc[:,1],'lat1':place_name.iloc[:,2],'lon2':place_name.iloc[:,3],'lat2':place_name.iloc[:,4],'distance':distance_list})
df.to_csv('distance_geo_data_gaode.csv',encoding='GBK',index=False)
• 写回答

#### 3条回答默认 最新

• 请叫我问哥 Python领域新星创作者 2022-10-27 21:44
关注

你的数据是上下两行之间计算距离吧？根据原来的代码，可以这样改试试：

#根据经纬度计算距离
from math import radians, cos, sin, asin,sqrt
import pandas as pd
def geodistance(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])  # 将经纬度转化为弧度
dlon = lon2-lon1
dlat = lat2-lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
distance = 2*asin(sqrt(a))*6371
return distance
hangshu = place_name.shape[0]
distance_list = [0]
for i in range(1, hangshu):
lon1 = place_name.iloc[i-1,1]
lat1 = place_name.iloc[i-1,2]
lon2 = place_name.iloc[i,1]
lat2 = place_name.iloc[i,2]
distance_start_end = geodistance(lon1=lon1,lat1=lat1,lon2=lon2,lat2=lat2)
distance_list.append(distance_start_end)
df = pd.DataFrame({'date':place_name.iloc[:,0],'lon1':place_name.iloc[:,1],'lat1':place_name.iloc[:,2],'distance':distance_list})
df.to_csv('distance_geo_data_gaode.csv',encoding='GBK',index=False)

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

#### 问题事件

• 已结题 （查看结题原因） 10月27日
• 已采纳回答 10月27日
• 创建了问题 10月27日

#### 悬赏问题

• ¥15 Power BI 里面 帕累托图突出显示前20
• ¥50 用预估矫正法，分数阶微分方程组传染病的最优控制代码怎么写
• ¥15 画个数据流程图，手画也行
• ¥60 AS自带模拟器AVD Root 和 Xposed安装
• ¥15 Esp32的microPython设备中main.py文件无法开机自启动
• ¥30 哪位搞Android的编程师可以帮我远程一下，悬赏30元
• ¥15 solidity部署上合约，可以mint，也继承接口了，在区块链也不显示代币名字
• ¥15 讨论 博士论文交互项怎么讨论？
• ¥50 在集成BiLSTM和GCN模型时遇到了问题
• ¥33 集成BiLSTM模型和GCN模型时，前模型的输出不匹配后模型的输入