python 高德批量获取路径信息

高德开发者文档 :https://lbs.amap.com/api/webservice/guide/api/direction#driving

第一步:首先要申请自己的:key

第二步:根据自己的需求,从开发者文档。找到自己需要的API

第三步:发送请求,解析数据

 

获取两个坐标之间最优的路线距离

复制代码
import json
import requests
import openpyxl


# 定义函数

def Getlngat(origin, destination):
    url = 'https://restapi.amap.com/v3/direction/driving'
    ak = XXXXXX  #  自己的key
  示例:https://restapi.amap.com/v3/direction/driving?origin=119.449153,32.766924&destination=120.514376,31.318919&extensions=base&strategy=2&key=bb52f9bfc6d3352be1bce309f3f7da2a
    url = url + '?' + 'origin=' + origin + '&destination=' + destination +'&extensions=base&strategy=2'+ '&key=' + ak  # 拼接url  origin 起点经纬坐标, destination 终点经纬坐标
    req = requests.get(url=url)
    temp = req.json()
    return temp


# 解析

def Analy(file_path):
    wb = openpyxl.load_workbook(file_path)
    ws = wb.active
    for i in range(3, ws.max_row + 1):
        try:  # 异常捕获发生异常的坐标,不影响后续地点坐标获取
            address = ws.cell(i, 4).value
            addres = ws.cell(i, 5).value
            origin = "{},{}".format(address, addres)
            a1 = ws.cell(i, 16).value
            a2 = ws.cell(i, 17).value
            if int(a1) > int(a2):
                destination = "{},{}".format(a1, a2)
            else:
                destination = "{},{}".format(a2, a1)
            if destination:
                distance = int(Getlngat(origin, destination)["route"]["paths"][0]["distance"])*0.001
                ws.cell(i, 9).value = distance  # 写入纬度
                print(distance)
            else:
                ws.cell(i, 9).value = "缺少终点坐标"
        except:
            ws.cell(i, 9).value = "该地点目前未能获取,请重新尝试"
        wb.save(file_path)


# 主函数

Analy(file_path=r'D:\PyCharm\坐标抓取\excel\结算数据3.xlsx')
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
# 0,速度优先,此路线不一定距离最短
# 1,费用优先,不走收费路段,且耗时最少的路线
# 2,距离优先,仅走距离最短的路线,但是可能存在穿越小路/小区的情况
# 3,速度优先,不走快速路,例如京通快速路(因为策略迭代,建议使用13)
# 4,躲避拥堵,但是可能会存在绕路的情况,耗时可能较长
# 5,多策略(同时使用速度优先、费用优先、距离优先三个策略计算路径)。
# 其中必须说明,就算使用三个策略算路,会根据路况不固定的返回一~三条路径规划信息。
# 6,速度优先,不走高速,但是不排除走其余收费路段
# 7,费用优先,不走高速且避免所有收费路段
# 8,躲避拥堵和收费,可能存在走高速的情况,并且考虑路况不走拥堵路线,但有可能存在绕路和时间较长
# 9,躲避拥堵和收费,不走高速
strategy = 2

不懂就看开发文档 https://lbs.amap.com/api/webservice/guide/api/direction#driving

 

posted @   徐俊112  阅读(173)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示