用代码实现根据表格给出的经纬度算出两个地点的驾车时间以及距离,注意一个表格一行只有一个地址的经纬度,需要算出每两个地址之间的距离以及驾车时间(使用高德地图),给的表格(excel表)数据只有两列,一列叫“地址”,一列叫'经纬度",经纬度在同一列并用“,”隔开,最后将得到的数据绘制成excel表,生成的表格需要显示是哪两个地址之间的,驾车时间用小时做单位,距离用千米做单位(精度取一位小数)
时间: 2023-12-17 14:02:51 浏览: 177
经纬度算距离
你可以使用 Python 和 pandas 库来完成这个任务。首先,需要安装高德地图 Python SDK,可以通过 pip install gaode-sdk 来安装。接下来,你可以使用 pandas 读取 Excel 文件中的数据,对每一行的地址进行解析,然后调用高德地图 API 计算驾车时间和距离。
以下是示例代码,你需要将其中的高德地图 API key 替换为自己的:
```python
import pandas as pd
from gaodesdk import get_distance
# 替换为你的高德地图 API key
key = 'your_gaode_map_api_key'
# 读取 Excel 文件
df = pd.read_excel('addresses.xlsx')
# 初始化结果表格
result = pd.DataFrame(columns=['起点', '终点', '距离(km)', '时间(h)'])
# 遍历每一行数据
for i in range(len(df)):
# 解析地址和经纬度
address, location = df.iloc[i]
lat, lng = location.split(',')
# 计算该地址与其他地址之间的距离和时间
for j in range(i+1, len(df)):
other_address, other_location = df.iloc[j]
other_lat, other_lng = other_location.split(',')
# 调用高德地图 API 计算距离和时间
distance, duration = get_distance(key, (lng, lat), (other_lng, other_lat))
# 将结果添加到结果表格中
result.loc[len(result)] = [address, other_address, distance/1000, duration/3600]
# 保存结果到 Excel 文件中
result.to_excel('result.xlsx', index=False)
```
运行以上代码后,会生成一个名为 result.xlsx 的 Excel 文件,其中包含了每两个地址之间的距离和驾车时间。
阅读全文