路径规划-路线规划-驾车路径规划-步行路径规划-骑乘路径规划-公交路径规划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,代表0600
                    "distance": "2022",//公交行驶距离 单位:米
                    "bustimetag": "0",
                    "id": "330200021780",//公交路线id
                    "type": "地铁线路",//公交类型 格式如:地铁线路
                    "bus_time_tips": "",
                    "name": "轨道交通2号线(栎社国际机场--红联)",//公交路线名称
                    "end_time": "",//末班车时间 格式如:2300,代表2300
                    "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": "",//打车终点名称
              }
            }
          ]
        }
      ]
    }
  }
}
相关文章
|
3月前
|
API
地图搜索API接口在移动互联网中的应用
地图搜索API提供关键字、周边、多边形、ID及输入提示五大搜索能力,支持精准定位餐饮、车站等POI。含丰富返回字段(位置、营业信息、图片、导航等),适配各类出行场景,助力高效集成地图搜索功能。
249 3
|
28天前
|
API
食物组合查询-食物搭配查询-食物科学搭配-食物相生相克-食物合理搭配API接口介绍
本API提供食物搭配查询服务,基于传统饮食文化与营养学,智能判断食物相宜/相克关系,给出科学影响说明与建议(如“牛奶+柠檬”)。支持关键词搜索与分页,助力破除饮食误区、实现营养均衡膳食指导。
86 8
|
JSON Java Serverless
nacos常见问题之cpu和内存占用高如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2826 0
|
缓存 网络协议 Linux
百度搜索:蓝易云【解决github push/pull报错443】
通过以上方法,你有望解决GitHub push/pull报错443的问题。如果问题仍然存在,建议检查GitHub的状态页面,看是否有正在维护或故障的情况。
366 3
|
Android开发
Android 全屏适配刘海机型
Android 全屏适配刘海机型
509 0
|
6月前
|
数据可视化 数据处理
R语言4.5.0 最新版本安装详细教程,附安装包
R 4.5.0(代号“Wooden Christmas-Tree”)于2024年4月发布,带来多项语法优化:内置%notin%运算符、支持向量条件判断、paste0()性能提升。显著增强数据处理效率与代码简洁性,推荐更新。
1533 2
|
11月前
|
数据采集 并行计算 算法
基于蚁群算法求解带时间窗的车辆路径问题
基于蚁群算法求解带时间窗的车辆路径问题
319 0
|
Linux
RPM软件包管理工具使用指南
RPM(Red Hat Package Manager)是Red Hat及其他基于RPM的Linux发行版中用于管理软件包的基本包管理工具。它是一个二进制包管理系统,允许用户在Linux系统中方便地安装、升级、查询和删除软件包。RPM使用.rpm文件扩展名的软件包文件,这些软件包文件包含了软件的可执行文件、配置文件、文档等,以及安装和卸载时需要执行的脚本。通过RPM,用户可以轻松地管理和维护系统中的软件,确保系统的稳定运行和软件的及时更新。
993 4
|
机器学习/深度学习 编解码 自然语言处理
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
1139 2
|
缓存 网络协议 安全
【计算巢】DNS 解析过程详解:域名如何转换为 IP 地址
【5月更文挑战第31天】DNS(域名系统)将人类可读的域名转换为IP地址,涉及本地DNS缓存、层次化DNS服务器系统,包括根DNS、顶级域名DNS和权威DNS。当查询域名时,通过DNS服务器间的交互找到对应IP并返回给浏览器。Python示例展示了DNS查询过程。尽管DNS面临安全挑战,如欺骗和缓存中毒,采取安全措施可确保其稳定性和安全性。它是互联网的重要基础,连接域名与IP,支持便捷的网络访问。
848 0