概述
腾讯地图Direction API,提供多种交通方式的路线计算能力,包括:
      1. 驾车(driving):支持结合实时路况、少收费、不走高速等多种偏好,精准预估到达时间(ETA);
      2. 步行(walking):基于步行路线规划。
      3. 骑行(bicycling):基于自行车的骑行路线;
      4. 公交(transit):支持公共汽车、地铁等多种公共交通工具的换乘方案计算;
      本服务基于Http/Https协议,通过请求URL参数设置路线查询条件,返回JSON结构化信息,在地图中显示路线需要结合地图API或SDK实现相应功能。
1)驾车(driving)路线规划
该请求为GET请求
https://apis.map.qq.com/ws/direction/v1/driving/?from=39.915285,116.403857&to=39.915285,116.803857&waypoints=39.111,116.112;39.112,116.113&output=json&callback=cb&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77
参数说明
参数 | 必填 | 说明 | 示例 |
---|---|---|---|
from | 是 | 起点位置坐标 | from=40.034852,116.319820 |
from_poi | 否 | 起点POI ID,传入后,优先级高于from(坐标) | from_poi=4077524088693206111 |
heading | 否 | [from辅助参数]在起点位置时的车头方向,数值型,取值范围0至360(0度代表正北,顺时针一周360度) 传入车头方向,对于车辆所在道路的判断非常重要,直接影响路线计算的效果 |
heading=175 |
speed | 否 | [from辅助参数]速度,单位:米/秒,默认3。 当速度低于1.39米/秒时,heading将被忽略 | speed=5 |
accuracy | 否 | [from辅助参数]定位精度,单位:米,取>0数值,默认5。 当定位精度>30米时heading参数将被忽略 | accuracy=30 |
road_type | 否 | [from辅助参数] 起点道路类型,可选值: 0 [默认]不考虑起点道路类型 1 在桥上;2 在桥下;3 在主路;4 在辅路;5 在对面;6 桥下主路;7 桥下辅路 |
车在辅路: road_type=4 |
from_track | 否 |
起点轨迹: 在真实的场景中,易受各种环境及设备精度影响,导致定位点产生误差,传入起点前段轨迹,可有效提升准确度。 优先级:高于from参数 轨迹中的每个定位点包含以下信息: 1.纬度 2.经度 3.速度:GPS速度,单位 米/秒,取不到传-1 4.精度:GPS精度, 单位毫米,取不到传-1 5.运动方向: gps方向,正北为0, 顺时针夹角,[0-360),获取不到时传-1 6.设备方向:正北为0, 顺时针夹角,[0-360),取不到传-1 7.时间:定位获取该点的时间,Unix时间戳,取不到传0 参数格式: 1.轨迹中最多支持传入50个点。 2.每个点之间英文分号分隔,时间顺序由旧到新(第一个点最早获取,最后一个点最新得到) 3.每个点中的信息用英文逗号分隔,并按以下顺序传入: 纬度,经度,速度,精度,运动方向,设备方向,时间;第2个点;第2个点…… |
from_track=40.037029,116.316633,16,500,160,-1,1529491290;40.036634,116.317170,16,500,161,-1,1529491300;40.035977,116.317663,16,500,159,-1,1529491310;40.035706,116.318328,16,500,160,-1,1529491320;40.035090,116.319058,16,500,160,-1,1529491330;40.034852,116.319820,16,500,160,-1,1529491340 |
to | 是 | 终点位置坐标,格式:lat,lng | to=39.771075,116.351395 |
to_poi | 否 | 终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优。 该参数优先级高于to(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用to(坐标)作为终点 |
to_poi=5371594408805356897 |
waypoints | 否 | 途经点,格式:lat1,lng1;lat2,lng2;… 最大支持10个 | waypoints=39.951004,116.571980 |
policy | 否 | 一、策略参数(以下三选一) LEAST_TIME:[默认]参考实时路况,时间最短 PICKUP:网约车场景 – 接乘客 TRIP:网约车场景 – 送乘客 二、单项偏好参数 (可与策略参数并用,可多选,逗号分隔) REAL_TRAFFIC:参考实时路况 LEAST_FEE:少收费 AVOID_HIGHWAY:不走高速 NAV_POINT_FIRST: 该策略会通过终点坐标查找所在地点(如小区/大厦等),并使用地点出入口做为目的地,使路径更为合理 |
policy=LEAST_TIME policy=LEAST_TIME,AVOID_HIGHWAY |
plate_number | 否 | 车牌号,填入后,路线引擎会根据车牌对限行区域进行避让,不填则不不考虑限行问题 | plate_number=京X309KX |
cartype | 否 | 车辆类型(影响限行规则),取值:
0:[默认]普通汽车 1:新能源 |
cartype=1 |
key | 是 | 开发key | key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77 |
callback | 否 | 回调函数 | callback=cb |
output | 否 | 返回值类型:json、jsonp | output=json |
返回值说明
名称 | 类型 | 必填 | 说明 | ||||
---|---|---|---|---|---|---|---|
status | number | 是 | 状态码,正常为0 | ||||
message | string | 是 | 状态说明 | ||||
result | object | 是 | 搜索结果 | ||||
routes | array | 是 | 路线方案 | ||||
mode | string | 是 | 方案交通方式,固定值:"DRIVING" | ||||
tags | array | 否 | 方案标签,用于表明方案特点 示例:tags:["LEAST_LIGHT"] 取值: EXPERIENCE 经验路线 RECOMMEND 推荐路线 LEAST_LIGHT 红绿灯少 LEAST_TIME 时间最短 LEAST_DISTANCE 距离最短 |
||||
distance | number | 是 | 方案总距离 | ||||
duration | number | 是 | 方案估算时间(含路况) | ||||
restriction | object | 否 | 限行信息 | ||||
status | number | 是 |
限行状态码: 0 途经没有限行城市,或路线方案未涉及限行区域 1 途经包含有限行的城市 3 [设置车牌] 已避让限行 4 [设置车牌] 无法避开限行区域(本方案包含限行路段) |
||||
polyline | array | 是 | 方案路线坐标点串(该点串经过压缩,解压请参考:polyline 坐标解压) | ||||
waypoints | array | 否 | 途经点,顺序与输入waypoints一致 (输入waypoints时才会有此结点返回) | ||||
title | string | 否 | 途经点路名 | ||||
location | object | 否 | 途经点坐标 | ||||
lat | number | 否 | 纬度 | ||||
lng | number | 否 | 经度 | ||||
taxi_fare | object | 否 | 预估打车费 | ||||
fare | number | 否 | 预估打车费用,单位:元 | ||||
steps | array | 是 | 路线步骤 | ||||
instruction | string | 是 | 阶段路线描述 | ||||
polyline_idx | array | 是 | 阶段路线坐标点串在方案路线坐标点串的位置 | ||||
road_name | string | 否 | 阶段路线路名 | ||||
dir_desc | string | 否 | 阶段路线方向 | ||||
distance | number | 是 | 阶段路线距离 | ||||
act_desc | string | 否 | 阶段路线末尾动作:如:左转调头 | ||||
accessorial_desc | string | 否 | 末尾辅助动作:如:到达终点 |
示例:
2)步行(walking)路线规划
请求URL示例:
https://apis.map.qq.com/ws/direction/v1/walking/?from=39.984042,116.307535&to=39.976249,116.316569&key=YourKey
参数说明:
参数 | 必填 | 说明 | 示例 |
---|---|---|---|
from | 是 | 起点位置,格式:lat,lng | from=39.915285,116.403857 |
to | 是 | 终点位置,格式:lat,lng | to=39.915285,116.803857 |
key | 是 | 开发Key | key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77 |
callback | 否 | 回调函数 | callback=cb |
output | 否 | 返回值类型:JSON 、 JSONP | output=json |
响应结果
名称 | 类型 | 必填 | 说明 | ||||
---|---|---|---|---|---|---|---|
status | number | 是 | 状态码,正常为0 | ||||
message | string | 是 | 状态说明 | ||||
result | object | 是 | 搜索结果 | ||||
routes | array | 是 | 路线方案 | ||||
mode | string | 是 | 方案交通方式,固定值:"WALKING" | ||||
distance | number | 是 | 方案整体距离(米) | ||||
duration | number | 是 | 方案估算时间(分钟) | ||||
direction | string | 是 | 方案整体方向 | ||||
polyline | array | 是 | 方案路线坐标点串(该点串经过压缩,解压请参考:polyline 坐标解压) | ||||
steps | array | 是 | 路线步骤 | ||||
instruction | string | 是 | 阶段路线描述 | ||||
polyline_idx | array | 是 | 阶段路线坐标点串在方案路线坐标点串的位置 | ||||
road_name | string | 否 | 阶段路线路名 | ||||
dir_desc | string | 否 | 阶段路线方向 | ||||
distance | number | 是 | 阶段路线距离 | ||||
act_desc | string | 否 | 阶段路线末尾动作 |
响应结果示例
3)骑行(bicycling)路线规划
请求URL示例:
https://apis.map.qq.com/ws/direction/v1/bicycling/?from=39.984042,116.307535&to=39.980869,116.325238&key=YourKey
参数说明:
参数 | 必填 | 说明 | 示例 |
---|---|---|---|
from | 是 | 起点位置,格式:lat,lng | from=39.915285,116.403857 |
to | 是 | 终点位置,格式:lat,lng | to=39.915285,116.803857 |
key | 是 | 开发Key | key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77 |
callback | 否 | 回调函数 | callback=cb |
output | 否 | 返回值类型:JSON 、 JSONP | output=json |
响应结果
名称 | 类型 | 必填 | 说明 | ||||
---|---|---|---|---|---|---|---|
status | number | 是 | 状态码,正常为0 | ||||
message | string | 是 | 状态说明 | ||||
result | object | 是 | 搜索结果 | ||||
routes | array | 是 | 路线方案 | ||||
mode | string | 是 | 方案交通方式,固定值:"BICYCLING" | ||||
distance | number | 是 | 方案整体距离(米) | ||||
duration | number | 是 | 方案估算时间(分钟) | ||||
direction | string | 是 | 方案整体方向 | ||||
polyline | array | 是 | 方案路线坐标点串(该点串经过压缩,解压请参考:polyline 坐标解压) | ||||
steps | array | 是 | 路线步骤 | ||||
instruction | string | 是 | 阶段路线描述 | ||||
polyline_idx | array | 是 | 阶段路线坐标点串在方案路线坐标点串的位置 | ||||
road_name | string | 否 | 阶段路线路名 | ||||
dir_desc | string | 否 | 阶段路线方向 | ||||
distance | number | 是 | 阶段路线距离 | ||||
act_desc | string | 否 | 阶段路线末尾动作 |
响应结果示例
3)公交(transit)路线规划
请求参数
参数 | 必填 | 说明 | 示例 |
---|---|---|---|
from | 是 | 起点位置,格式:lat,lng | from=39.915285,116.403857 |
to | 是 | 终点位置,格式:lat,lng | to=39.915285,116.803857 |
departure_time | 否 | 出发时间,默认使用当前时间,用于过滤掉非运营时段的线路 | departure_time=1509357129 |
key | 是 | 开发key | key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77 |
callback | 否 | 回调函数 | callback=cb |
output | 否 | 返回值类型:JSON 、 JSONP | output=json |
policy | 否 | 路线规划优先条件 | 1) 排序策略,以下三选一: policy=LEAST_TIME:时间短(默认) policy=LEAST_TRANSFER:少换乘 policy=LEAST_WALKING:少步行 2) 额外限制条件 (可与排序策略配合使用,如:policy=LEAST_TRANSFER,NO_SUBWAY): NO_SUBWAY ,不坐地铁 |
响应结果:
a.公交同城路线说明:
路线根据交通工具的不同划分路段,如下图:
该请求为GET请求
https://apis.map.qq.com/ws/direction/v1/transit/?from=40.015109,116.313543&to=40.151850,116.296881&policy=LEAST_TIME&output=jsonp&callback=callback_function&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77
响应结果示例
b.跨城说明:
路线跨城支持城市间的铁路路线规划,如图(A城火车站)b - c(B城火车站) 路线规划方案; 市内路线(如图a - b或c - d)需要使用mode = TRANSIT_FOLDER节点进行二次查询得到。
该请求为GET请求
https://apis.map.qq.com/ws/direction/v1/transit/?from=39.864990,116.379010&to=31.225480,121.492580&policy=LEAST_TIME&output=jsonp&callback=callback_function&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77
响应结果示例
polyline 坐标解压
导航路线点串coors(注:coors为polyline的坐标串)使用前向差分进行压缩,使用时解压方法如下:
var coors=[127.496637,50.243916,-345,-1828,19867,-26154]; for (var i = 2; i < coors.length ; i++) {coors[i] = coors[i-2] + coors[i]/1000000}
注意事项
起点、终点、途经点若不在道路上,会自动吸附到附近的道路上: