需要获取高德地图的数据,可以先查看官方的手册:
https://lbs.amap.com/api/webservice/summary
一、获取key
搜索高德地图API,进入官网,在我的应用管理处添加web服务,获取权限 key
二、提取地点经纬度
import json
import requests
import pandas as pd
def get_lon_lat(i):
url = 'https://restapi.amap.com/v3/geocode/geo?parameters'
parameters = {
'key':'', ##输入自己的key
'address':'%s' % i
}
page_resource = requests.get(url,params=parameters)
text = page_resource.text ##获得数据是json格式
data = json.loads(text) ##把数据变成字典格式
lon_lat = data["geocodes"][0]['location']
return lon_lat
三、获取两地出行时间
def routes(origin,destination):
key = '' ##输入自己key
parameters = {'key':key,'origin':origin,'destination':destination}
##参数的输入,可以按照自己的需求选择出行时间最短,出行距离最短,不走高速等方案,结合自己需求设置,参考手册
response = requests.get('https://restapi.amap.com/v3/direction/driving?parameters',params=parameters)
text = json.loads(response.text)
duration = text['route']['paths'][0]['duration'] ##出行时间
## 可以自己打印text看一下,能提取很多参数,出行时间、出行费用、出行花费等看自己需求提取
return duration
if __name__ == '__main__':
df = pd.read_excel(r"C:\Users\CHDTomas\Desktop\区县.xlsx")
list1 = df['区县'].tolist()
list2 = []
for i in list1:
k = get_lon_lat(i)
list2.append(k)
df1 = pd.DataFrame({'区县':list1,'经纬度':list2})
o_list = df1['经纬度'].tolist()
d_list = df1['经纬度'].tolist()
df2 = pd.DataFrame()
list3=[]
for i in range(len(o_list)):
list_temp = []
for j in range(len(d_list)):
origin = o_list[i]
destination = d_list[j]
duration = routes(origin,destination)
list_temp.append(duration)
list3.append(list_temp)
df2 = pd.DataFrame(list3)
查询地点名称输入
结果输出
第一行表示从三原县人民政府到各个区县人民政府的开车最短时间
第一列表示各个区县人民政府到三原县人民政府的开车最短时间