利用高德地图获取地点经纬度,并提取两地驾车、步行、骑行的出行时间、出行距离、费用等参数

需要获取高德地图的数据,可以先查看官方的手册:
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)

查询地点名称输入
利用高德地图获取地点经纬度,并提取两地驾车、步行、骑行的出行时间、出行距离、费用等参数_第1张图片
结果输出
利用高德地图获取地点经纬度,并提取两地驾车、步行、骑行的出行时间、出行距离、费用等参数_第2张图片第一行表示从三原县人民政府到各个区县人民政府的开车最短时间
第一列表示各个区县人民政府到三原县人民政府的开车最短时间

你可能感兴趣的:(python,pandas)