路径规划-路线规划-驾车路径规划-步行路径规划-骑乘路径规划-公交路径规划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个月内不可修改。