路径规划-路线规划-驾车路径规划-步行路径规划-骑乘路径规划-公交路径规划API接口介绍

简介: 本文介绍地图路径规划API,支持驾车、步行、公交、骑行及电动车五种出行方式的智能路线计算。涵盖多策略算路(如避拥堵、少收费)、途经点/限行规避等高级功能,适用于无地图展示的线路查询或自研导航场景,助力开发者快速集成精准导航能力。

当我们日常出行时,免不了需要用到导航,那么地图路线规划API可以很好地实现此功能。本文将功能、适用场景和使用说明三个方面来介绍路径规划API接口。

功能介绍

  • 驾车路线规划:开发者可根据起终点坐标检索符合条件的驾车路线规划方案,支持一次请求返回多条路线结果、支持传入多个途经点、支持传入车牌规避限行、支持根据不同业务场景设置不同的算路策略等。

  • 步行路线规划:开发者可根据起终点坐标检索符合条件的步行路线规划方案。

  • 公交路线规划:开发者可根据起终点坐标检索符合条件的公共交通路线规划方案,支持结合业务场景设置不同的公交换乘策略。

  • 骑行路线规划:开发者可根据起终点坐标检索符合条件的骑行路线规划方案。

  • 电动车路线规划:开发者可根据起终点坐标检索符合条件的电动车路线规划方案,与骑行略有不同的是会考虑限行等条件。

适用场景

  • 无需展现地图的场景下,进行线路查询,如以线路结果页形式展现换乘方案;
  • 根据返回线路数据,自行开发线路导航。

使用说明

下面介绍驾车路线规划和公交路线规划的使用,其他可参见接口文档

驾车路线规划

请求参数

名称 类型 必须 说明
origin String 是 起点经纬度 经度在前,纬度在后,经度和纬度用","分割,经纬度小数点后不得超过6位
destination String 是 目的地经纬度 经度在前,纬度在后,经度和纬度用","分割,经纬度小数点后不得超过6位
originType String 否 起点处道路类型 填入此值可以辅助更精准的起点算路
0:普通道路
1:高架上
2:高架下
3:主路
4:辅路
5:隧道
7:环岛
9:停车场内部
strategy Integer 否 驾车算路策略
0:速度优先(只返回一条路线),此路线不一定距离最短
1:费用优先(只返回一条路线),不走收费路段,且耗时最少的路线
2:距离优先(只返回一条路线),仅走距离最短的路线,但是可能存在穿越小路/小区的情况
3:速度优先(只返回一条路线),不走快速路,例如京通快速路
32:默认,推荐
33:躲避拥堵
34:高速优先
35:不走高速
36:少收费
37:大路优先
38:速度最快
39:躲避拥堵+高速优先
40:躲避拥堵+不走高速
41:躲避拥堵+少收费
42:少收费+不走高速
43:躲避拥堵+少收费+不走高速
44:躲避拥堵+大路优先
45:躲避拥堵+速度最快
waypoints String 否 途经点 途径点坐标串,默认支持1个有序途径点。多个途径点坐标按顺序以英文分号;分隔。最大支持16个途经点
avoidpolygons String 否 避让区域 区域避让,默认支持1个避让区域,每个区域最多可有16个顶点;多个区域坐标按顺序以英文竖线符号分隔,如果是四边形则有四个坐标点,如果是五边形则有五个坐标点;最大支持32个避让区域。同时传入避让区域及避让道路,仅支持避让道路;每个避让区域不能超过81平方公里,否则避让区域会失效
avoidroad String 否 避让道路名 只支持一条避让道路
plate String 否 车牌号码 车牌号,如 京AHA322,支持6位传统车牌和7位新能源车牌,用于判断限行相关
carType String 否 车辆类型
0:普通燃油汽车
1:纯电动汽车
2:插电式混动汽车
ferry String 否 是否使用轮渡
0:使用渡轮
1:不使用渡轮
showFields String 否 返回结果控制,用来筛选接口返回结果中是否出现哪些字段。show_fields的使用需要遵循如下规则:1、具体可指定返回的字段类型有:costtmcsnavicitiespolyline任选一个或多个作为入参值,即可在返回结果中显示。2、多个值间采用“,”进行分割;3、show_fields未设置、为空时,只返回基础信息类内字段;

返回样例

{
   
  "code": 200,// 返回码,详见返回码说明
  "msg": "成功",// 返回码对应描述
  "taskNo": "786758979152547317551847",// 本次请求号
  "charge": true,// 计费标志
  "data": {
   
    "strategyNum": "1",//路径规划方案总数
    "strategyList": {
    //返回的规划方案列表
      "paths": [ //算路方案详情
        {
   
          "distance": "12784",//方案距离,单位:米
          "restriction": "0",//0代表限行已规避或未限行,即该路线没有限行路段 1代表限行无法规避,即该线路有限行路段
          "steps": [ //路线分段
            {
   
              "orientation": "西", //进入道路方向
              "step_distance": "81",//分段距离信息
              "road_name": "", //分段道路名称
              "instruction": "向西行驶81米左转", //行驶指示
              //以下字段是否返回,需要根据 showFields 字段传入的值来控制
              "cost": {
   //设置后可返回方案所需时间及费用成本
                "duration": "30",//线路耗时,分段step中的耗时
                "toll_road": "",//主要收费道路
                "toll_distance": "0",//收费路段里程,单位:米,包括分段信息
                "traffic_lights": "0",//方案中红绿灯个数,单位:个
                "tolls": "0"//此路线道路收费,单位:元,包括分段信息
              },
              "cities": [//设置后可返回分段途径城市信息
                {
   
                  "citycode": "0571",//途径城市编码
                  "adcode": "330100",//途径区域编码
                  "city": "杭州市",//途径城市名称
                  "districts": [//途径区县信息
                    {
   
                      "adcode": "330106",//途径区县adcode
                      "name": "西湖区"//途径区县名称
                    }
                  ]
                }
              ],
              "navi": {
   //设置后可返回详细导航动作指令
                "assistant_action": "",//导航主要动作指令
                "action": "左转"//导航辅助动作指令
              },
              "polyline": "120.109051,30.277231;120.108209,30.277183",//设置后可返回分路段坐标点串,两点间用“,”分隔
              "tmcs": [//设置后可返回分段路况详情
                {
   
                  "tmc_distance": "81",//从当前坐标点开始step中路况相同的距离
                  "tmc_status": "未知",//路况信息,包括:未知、畅通、缓行、拥堵、严重拥堵
                  "tmc_polyline": "120.109051,30.277231;120.108209,30.277183"//此段路况涉及的道路坐标点串,点间用","分隔
                }
              ]
            }
          ]
        }
      ],
      "origin": "120.10910,30.27714",//起点经纬度
      "destination": "120.17931,30.25326",//终点经纬度
      "taxi_cost": "27" //预计出租车费用,单位:元
    }
  }
}

公交路线规划

请求参数

名称 类型 必须 说明
appid String 是 服务商分配的唯一标识
timestamp Long 是 当前时间的毫秒数
sign String 是 签名,详见签名算法说明
origin String 是 起点经纬度 经度在前,纬度在后,经度和纬度用","分割,经纬度小数点后不得超过6位
destination String 是 目的地经纬度 经度在前,纬度在后,经度和纬度用","分割,经纬度小数点后不得超过6位
origAddCode String 否 起点所在行政区域编码 参考国家行政区域编码表
destAddCode String 否 终点所在行政区域编码 参考国家行政区域编码表
origCityCode String 是 起点所在城市 仅支持citycode,参考国家行政区域编码表 相同时代表同城,不同时代表跨城 譬如西湖区citycode为330106
destCityCode String 是 目的地所在城市 仅支持citycode,参考国家行政区域编码表 相同时代表同城,不同时代表跨城 譬如西湖区citycode为330106
strategy String 否 公共交通换乘策略
可选值:
0:推荐模式,综合权重
1:最经济模式,票价最低
2:最少换乘模式,换乘次数少
3:最少步行模式,尽可能减少步行距离
4:最舒适模式,尽可能乘坐空调车
5:不乘地铁模式,不乘坐地铁路线
7:地铁优先模式,步行距离不超过4KM
8:时间短模式,方案花费总时间最少
alternativeRoute String 否 返回方案条数 可传入1-10的阿拉伯数字,代表返回的不同条数
multiexPort String 否 地铁出入口数量
0:只返回一个地铁出入口
1:返回全部地铁出入口
maxTrans String 否 最大换乘次数
0:直达
1:最多换乘1次
2:最多换乘2次
3:最多换乘3次
4:最多换乘4次
nightFlag String 否 考虑夜班车
0:不考虑夜班车
1:考虑夜班车
date String 否 请求日期 例如:2013-10-28
time String 否 请求时间 例如:9-54
showFields String 否 返回结果控制,用来筛选接口返回结果中是否出现哪些字段。show_fields的使用需要遵循如下规则:1、具体可指定返回的字段类型有:costnavipolyline任选一个或多个作为入参值,即可在返回结果中显示。2、多个值间采用“,”进行分割;3、show_fields未设置、为空时,只返回基础信息类内字段;

返回样例

{
   
  "code": 200,// 返回码,详见返回码说明
  "msg": "成功",// 返回码对应描述
  "taskNo": "697790392161452073342933",// 本次请求号
  "charge": true,// 计费标志
  "data": {
   
    "strategyNum": "2",//路径规划方案总数
    "strategyList": {
   
      "cost": {
   
          "taxi_fee": "32"
      },
      "distance": "163755",//本条路线的总距离,单位:米
      "origin": "120.10910,30.27714", //起点经纬度
      "destination": "121.63084,29.86607",//终点经纬度
      "transits": [ //公交方案列表
        {
   
          "cost": {
   
              "duration": "8040",
              "transit_fee": "79.000000"
          },
          "distance": "179370",//本条路线的总距离,单位:米
          "nightflag": "",//0:非夜班车;1:夜班车
          "segments": [
            {
   
              "walking": {
   //步行方案信息
                "distance": "621",//每段线路步行距离 单位:米
                "origin": "120.215919,30.294054",//起点坐标
                "destination": "120.212502,30.290972",//终点坐标
                "duration": "100000",//步行预计时间  单位:秒
                "cost": {
   //设置后可返回方案所需时间及费用成本,需传showFields才可返回
                    "duration": "951"//线路耗时,方案总耗时,包含等车时间
                },
                "steps": [//步行路段列表
                  {
   
                    "distance": "87",//此段路的距离
                    "road": "",//路的名字
                    "instruction": "步行87米左转",//此段路的行走介绍
                    "duration": "",//此段路预计消耗时间 单位:秒
                    "polyline": "",//此段路的坐标
                    "action": "",//步行主要动作
                    "assistant_action": "", //步行辅助动作
                    "navi": {
   //设置后可返回详细导航动作指令。需传showFields才可返回
                        "assistant_action": "",//导航辅助动作指令
                        "action": "左转",//导航主要动作指令
                        "walk_type": "0"//算路结果中存在的道路类型:0:普通道路;1:人行横道;3:地下通道;4:过街天桥;5:地铁通道;6:公园;7:广场;8:扶梯;9:直梯;10:索道;11:空中通道;12:建筑物穿越通道;13:行人通道;14:游船路线;15:观光车路线;16:滑道;18:扩路;19:道路附属连接线;20:阶梯;21:斜坡;22:桥;23:隧道;30:轮渡;
                    },
                    "polyline": {
   //需传showFields才可返回
                        "polyline": "120.109055,30.277231;120.108215,30.277187"//设置后可返回分路段坐标点串,两点间用“,”分隔
                    }
                  }
                ]
              }
            },
            {
   
              "railway": {
    //火车换乘信息
                "trip": "G195",//线路车次号
                "distance": "154600",//该item换乘段的行车总距离
                "name": "G195(北京南-宁波)",//线路名称
                "id": "101001614253",//线路id编号
                "time": "2760",//该线路车段耗时
                "type": "G字头的高铁火车",//线路车次类型
                "departure_stop": {
    //火车始发站信息
                  "adcode": "330102",//上车站点所在城市的adcode
                  "name": "杭州东",//上车站点名称
                  "start": "0",//是否始发站,1表示为始发站,0表示非始发站
                  "location": "120.212600 30.290851",//上车站点经纬度
                  "id": "B023B08WDR",//上车站点ID
                  "time": "2221"//上车点发车时间
                },
                "arrival_stop": {
    //火车到站信息
                  "adcode": "330203",//下车站点所在城市的adcode
                  "name": "宁波",//下车站点名称
                  "location": "121.536807 29.861967",//下车站点经纬度
                  "end": "1",//是否为终点站,1表示为终点站,0表示非终点站
                  "id": "B023E0YC7M",//下车站点ID
                  "time": "2307"//到站时间,如大于24:00,则表示跨天
                },
                "via_stop": {
    //途径站点信息,extensions=all时返回
                  "name": "宁波",//途径站点的名称
                  "location": "121.536807 29.861967",//途径站点的坐标点
                  "id": "B023E0YC7M",//途径站点的ID
                  "time": "2307"//途径站点的进站时间,如大于24:00,则表示跨天
                  "wait": "5",//途径站点的停靠时间,单位:分钟
                },
                "alters": {
    //聚合的备选方案,extensions=all时返回
                  "name": "宁波",//备选方案ID
                  "id": "B023E0YC7M"//备选线路名称
                },
                "spaces": [//仓位及价格信息
                  {
   
                    "code": "",//仓位编码
                    "cost": "120"//仓位费用
                  }
                ]
              }
            },
            {
   
              "bus": {
   //公交方案信息
                "buslines": [//步行路段列表
                  {
   
                    "start_time": "",//首班车时间 格式如:0600,代表06:00
                    "distance": "2022",//公交行驶距离 单位:米
                    "bustimetag": "0",
                    "id": "330200021780",//公交路线id
                    "type": "地铁线路",//公交类型 格式如:地铁线路
                    "bus_time_tips": "",
                    "name": "轨道交通2号线(栎社国际机场--红联)",//公交路线名称
                    "end_time": "",//末班车时间 格式如:2300,代表23:00
                    "via_num": "1",//此段途经公交站数
                    "departure_stop": {
    //此段起乘站信息 格式如:中关村
                      "name": "宁波火车站",//站点名字
                      "location": "121.537022,29.862141",//站点经纬度
                      "id": "330200021780011",//站点id
                      "entrance": {
   //入口信息
                        "name": "B口",//入口名称
                        "location": "121.537102,29.860975"//入口经纬度
                      },
                      "exit": {
   //出口信息
                        "name": "B口",//出口名称
                        "location": "121.537102,29.860975"//出口经纬度
                      }
                    },
                    "arrival_stop": {
   //此段下车站 格式如:中关村
                      "name": "鼓楼", //站点名字
                      "location": "121.548970,29.873914",//站点经纬度
                      "id": "330200021780013"//站点id
                    },
                    "via_stops": [ //此段途经公交站点列表
                      {
   
                        "name": "城隍庙", //途径公交站点信息
                        "location": "121.548778,29.867124",//公交站点经纬度
                        "id": "330200021780012" //公交站点编号
                      }
                    ],
                    "cost": {
   //设置后可返回方案所需时间及费用成本,需传showFields才可返回
                        "duration": "1073"//线路耗时,方案总耗时,包含等车时间
                    },
                    "polyline": {
   //需传showFields才可返回
                        "polyline": "120.109629,30.281911;120.111323,30.281943;"//设置后可返回分路段坐标点串,两点间用“,”分隔
                    }
                  }
                ]
              },
              "taxi": {
   //出租车方案信息
                "price": "338",//打车预计花费金额
                "drivetime": "",//打车预计花费时间
                "distance": "",//打车距离
                "polyline": "",//线路点集合,通过show_fields控制返回与否
                "startpoint": "",//打车起点经纬度
                "startname": "",//打车起点名称
                "endpoint": "",//打车终点经纬度
                "endname": "",//打车终点名称
              }
            }
          ]
        }
      ]
    }
  }
}
相关文章
|
11月前
|
运维 监控 供应链
Alibaba交易平台TMF2.0介绍
2017双11交易峰值达32.5万笔/秒,面对高并发与复杂业务需求,阿里推出TMF2.0框架,通过业务与平台分离、全链路可视化、配置化发布等创新,实现需求开发周期缩短至12天,支撑多业务快速试错与复用,构建可配置、可监控、可运维的电商技术新体系。
1467 5
Alibaba交易平台TMF2.0介绍
|
8月前
|
传感器 算法 安全
算法应用:2025年算法人工旅鼠算法(ALA)无人机路径规划研究(Matlab代码实现)
算法应用:2025年算法人工旅鼠算法(ALA)无人机路径规划研究(Matlab代码实现)
383 1
|
1月前
|
人工智能 算法 安全
Qwen3.8抢先体验!正式版即将发布并开源!
Qwen3.8是阿里通义实验室发布的开源大模型,实现架构重构(动态MoE+Sparse-Tiled Attention)、推理升级(CoT++自我验证闭环)、原生多模态(UMT统一嵌入)及全栈开源,推动AI向高能效、强自主、全模态演进。(239字)
997 1
|
机器学习/深度学习 缓存 人工智能
大语言模型中常用的旋转位置编码RoPE详解:为什么它比绝对或相对位置编码更好?
Transformer的基石自2017年后历经变革,2022年RoPE引领NLP新方向,现已被顶级模型如Llama、Llama2等采纳。RoPE融合绝对与相对位置编码优点,解决传统方法的序列长度限制和相对位置表示问题。它通过旋转矩阵对词向量应用角度与位置成正比的旋转,保持向量稳定,保留相对位置信息,适用于长序列处理,提升了模型效率和性能。RoPE的引入开启了Transformer的新篇章,推动了NLP的进展。[[1](https://avoid.overfit.cn/post/9e0d8e7687a94d1ead9aeea65bb2a129)]
3113 0
|
9月前
|
XML JSON 定位技术
地理编码-逆地理编码-经纬度解析-逆经纬度解析API接口的运用
本文详解地理编码(地址→坐标)与逆地理编码(坐标→地址)技术,覆盖实时定位、车辆追踪、地图搜索与导航等应用场景;对比高德(GCJ02)与百度(BD09)地图API的参数、返回结构及坐标系差异,助力开发者快速集成位置服务。
1527 1
|
6月前
|
机器学习/深度学习 人工智能 数据可视化
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
本文介绍了一个基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统。该系统利用YOLOv8实现高效目标检测,结合PyQt5构建可视化界面,并集成DeepSeek模型进行智能分析。支持图片、视频、摄像头等多种数据源输入,可实时检测口罩佩戴情况。系统采用多线程技术保证流畅运行,并使用SQLite3进行数据存储管理。该方案有效解决了公共场所口罩佩戴监测难题,相比人工巡查显著提升了管理效率和准确性,为智慧城市建设和公共卫生安全管理提供了智能化解决方案。
521 34
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
|
数据采集 并行计算 算法
基于蚁群算法求解带时间窗的车辆路径问题
基于蚁群算法求解带时间窗的车辆路径问题
452 0
|
安全 Cloud Native 虚拟化
VMware ESXi 7.0 U3w 发布 - 领先的裸机 Hypervisor
VMware ESXi 7.0 U3w 发布 - 领先的裸机 Hypervisor
2916 1
VMware ESXi 7.0 U3w 发布 - 领先的裸机 Hypervisor
|
存储 移动开发 JavaScript
IRS应用发布之十一:应用部署发布
开发商工作台基于Docker体系和NodeJS构建发布系统,Docker镜像版本为NodeJS Long Term Support (LTS)版(node:lts),根据NodeJS升级计划自动更新默认版本。构建流程如下所示:
IRS应用发布之十一:应用部署发布
|
Linux
RPM软件包管理工具使用指南
RPM(Red Hat Package Manager)是Red Hat及其他基于RPM的Linux发行版中用于管理软件包的基本包管理工具。它是一个二进制包管理系统,允许用户在Linux系统中方便地安装、升级、查询和删除软件包。RPM使用.rpm文件扩展名的软件包文件,这些软件包文件包含了软件的可执行文件、配置文件、文档等,以及安装和卸载时需要执行的脚本。通过RPM,用户可以轻松地管理和维护系统中的软件,确保系统的稳定运行和软件的及时更新。
1223 4