两地之间的距离"/>
使用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).kilometersdistance_df = distance_df.append({'LocationA': i, 'LocationB': j, 'Distance': distance},ignore_index=True)# 按距离生序排列
distance_df = distance_df.sort_values('Distance')print(distance_df)
更多推荐
使用python计算两地之间的距离
发布评论