
使用python计算两地之间的距离
使用python计算两个经纬度的距离
·
已知两地经纬度的情况下,可以使用Python中的geopy
库来计算两地之间的距离,具体代码如下:
from geopy.distance import geodesic
# 两地经纬度
lat1 = 39.9042 # 纬度1
lon1 = 116.4074 # 经度1
lat2 = 31.2304 # 纬度2
lon2 = 121.4737 # 经度2
# 创建位置
location1 = (lat1, lon1)
location2 = (lat2, lon2)
# 计算距离
distance = geodesic(location1, location2).kilometers
print("两地的距离为:", distance, "千米")
如果想以“米”为单位计算两地的距离,只需把
distance = geodesic(location1, location2).kilometers
修改为:
distance = geodesic(location1, location2).meters
即可。
如果 有一个包含了很多个经纬度的DataFrame,我们想要计算其两两之间的距离,并将距离存入新的df中,并按距离的生序进行排列,可使用如下代码实现:
import pandas as pd
from geopy.distance import geodesic
# 创建示例DataFrame
df = pd.DataFrame({
'Latitude': [39.9042, 31.2304, 40.7128],
'Longitude': [116.4074, 121.4737, 74.0060]
})
# 创建新的DataFrame来存储距离
distance_df = pd.DataFrame(columns=['LocationA', 'LocationB', 'Distance'])
# 计算两两之间的距离
for i in range(len(df)):
for j in range(i+1, len(df)):
location_a = (df['Latitude'][i], df['Longitude'][i])
location_b = (df['Latitude'][j], df['Longitude'][j])
distance = geodesic(location_a, location_b).kilometers
distance_df = distance_df.append({'LocationA': i, 'LocationB': j, 'Distance': distance},
ignore_index=True)
# 按距离生序排列
distance_df = distance_df.sort_values('Distance')
print(distance_df)

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)