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

举报
聚美智数 发表于 2026/03/04 14:18:59 2026/03/04
【摘要】 本文介绍地图路径规划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、具体可指定返回的字段类型有:
cost
tmcs
navi
cities
polyline
任选一个或多个作为入参值,即可在返回结果中显示。
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、具体可指定返回的字段类型有:
cost
navi
polyline
任选一个或多个作为入参值,即可在返回结果中显示。
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": "",//打车终点名称
              }
            }
          ]
        }
      ]
    }
  }
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。