前言

本文主要对网约车分时预估价格服务进行介绍,包括信息传输方式、协议、具体信息等内容。

注意

  • 本服务以HTTPS方式进行访问。

  • 本接口为高级接口,默认不可调用,使用请与腾讯位置服务商务人员取得联系,开放调用配额后,即可使用。

  • 接口中的参数key和调用示例中的(含尖括号), 请使用您在https://lbs.qq.com/key.html中申请的key。

  • 如无特殊说明,所有接口的输入参数和输出参数编码全部统一为UTF-8。

概述

提供网约车场景下的费用预估功能,同时支持分时费用预估。
开发者可以通过设定起终点坐标和出发时间来获取行程的预估里程,耗时和打车费用。若开发者同时设置了分时计算的时间区间,也可获取分时预估里程和时间。据此,开发者可以结合自身定价策略计算行程预估价格。

请求URL

URL: https://apis.map.qq.com/ws/tls/v1/route/price
Method: POST
Content-Type: application/json


请求参数

参数 必填 类型 说明
key string 客户注册的访问webservice的key
reqid string 请求接口的请求id,需要全局唯一,推荐使用UUID生成
reqtime long 请求时间,调用方服务器请求接口时的本地时间,单位:秒
departure_time long 网约车预计出发时间,单位:秒
getin_lnglat string 上车点位置经纬度
格式:lng(精度),lat(纬度),精度与纬度用英文逗号分隔,小数点后不得超过6位,单次只可以传入一组经纬度坐标对
例如:116.319820, 40.034852
from_poi string 起点POI ID,传入后,优先级高于getin_lnglat(坐标)
例如:from_poi=4077524088693206111
getoff_lnglat string 下车点位置经纬度
格式:lng(精度),lat(纬度),精度与纬度用英文逗号分隔,小数点后不得超过6位,单次只可以传入一组经纬度坐标对
例如:116.319820,40.034852
to_poi string 终点POI ID(可通过腾讯位置服务地点搜索服务得到)
当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优。
该参数优先级高于getoff_lnglat(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用to(坐标)作为终点
例如:to_poi=5371594408805356897
time_config string 分时计算的时间区间,从小到大设置小时,每个需要5位长度
例如:07:00,10:00,17:00,20:00,22:00
从小到大设置区间段,区间段不允许重叠,区间之间逗号分隔,区间的开始结束采用-分隔
例如:07:00-10:00,17:00-20:00,系统会自动分解成07:00-10:00,10:00-17:00,17:00-20:00,20:00-07:00环形区间返回
waypoints string 途经点,格式:lng1,lat1;lng2,lat2;… 最大支持30个,超过30个之后的将被忽略
注:use_matrix设置为0的情况下,可设置途经点
例如:waypoints=116.571980,39.951004;116.319820,40.034852
policy string 设置策略
一、策略参数(以下三选一)
LEAST_TIME [默认]参考实时路况,时间最短
LEAST_DISTANCE 距离最短
PICKUP 网约车场景 – 接乘客 
TRIP 网约车场景 – 送乘客
二、单项偏好参数 (可与策略参数并用,可多选,逗号分隔)
REAL_TRAFFIC 参考实时路况 
LEAST_FEE 少收费 
AVOID_HIGHWAY 不走高速 
NAV_POINT_FIRST 该策略会通过终点坐标查找所在地点(如小区/大厦等),并使用地点出入口做为目的地,使路径更为合理
例如:policy= LEAST_TIME, REAL_TRAFFIC
use_matrix int 是否使用距离矩阵算路,取值:
0 : 不使用[默认]
1:使用
默认为0,使用路线规划算路,如果此参数为1,则time_config参数不生效
price_per_distance double 里程定价,单位:元/公里
price_per_minute double 时间定价,单位:元/分钟
added_fields string 返回指定附加字段 ,取值:
route_id:路线ID,用于乘客选路时使用,传给司机端导航sdk可按所选路线进行导航
nav_session_id:导航算路会话ID,乘客选路需要同时传给司机端导航sdk
例如:added_fields=route_id,nav_session_id
is_cache double 服务器是否缓存算路结果,取值:
0 不存
1 缓存(乘客选路功能必须传1,缓存后,司机端导航SDK在算路时会从服务端取出所选路线,进行导航)

响应结果

名称 类型 必填 说明
status int 状态码,0正常返回,表示接受到正常信息
message string 错误信息
data object 接口返回信息
status int 状态码,0正常返回,表示接受到正常信息
message stirng 错误信息
request_id string 请求id,后续追溯问题需要此信息,仅use_matrix为默认值0时返回此字段
nav_session_id string 通过added_fields=参数控制返回本字段,默认不返回,用于乘客选路功能
routes array 多路线预估价格
route_id double 通过added_fields=参数控制返回本字段,默认不返回,用于乘客选路功能
distance double 预估总里程,单位:米
duration int 预估总耗时,单位:秒
fare double 预估乘车费用,单位:分
tolls double 途中高速费,单位:分
polyline array 方案路线坐标点串(该点串经过压缩,解压请参考后文:Polyline 坐标解压),仅use_matrix为默认值0时返回此字段
time_res array 分时里程数组;
如果请求中未传time_config,系统会按照07:00,10:00,17:00,20:00,22:00进行计算返回
time_start string 分时区间开始时间,例如: 22:00
time_end string 分时区间结束时间,例如: 07:00
zone_start string 分时区间开始时间,包含日期
例如: 2019-07-31 22:00:00
zone_end string 分时区间结束时间,包含日期
例如: 2019-08-01 07:00:00
start string 该时间段的计费开始时间
例如: 2019-07-31 22:31:24
end string 该时间段的计费结束时间
例如: 2019-07-31 23:16:24
distance double 该时间段的计费里程,单位:米,例如:20578
duration int 该时间段的计费时间,单位:秒,例如:1981

调用示例

请求URL

Methond:POST
Content-Type: application/json
URL: https://apis.map.qq.com/ws/tls/v1/route/price


请求body体

{
    "key": "<key>",
    "reqid":"5e9da870-f231-11e8-afed-6c0b84ab3034",
    "reqtime":1578369038,
    "departure_time":1578369038,
    "getin_lnglat":"116.410266,39.988955",
    "getoff_lnglat":"116.658524,40.113174",
    "use_matrix":1,
    "price_per_distance":12.5,
    "price_per_minute":2.3
}

响应示例

   {
         "status"0,
         "message""query ok",
         "data": {
               "status"0,
               "message""ok",
               "routes": [
                 {
                       "distance"34746,
                       "duration"2452,
                       "fare"52831,
                       "tolls"0
                 }
                 ]
         }
   }

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
}
/**                                                                    
 *例如路线点串coors=[127.496637,50.243916,-345,-1828,19867,-26154]   
 *由以上公式可以得出坐标点串为
 *[127.496637,50.243916,127.496292,50.242088,127.516159,50.215934]
**/

附录

如需查询返回值中的status和message的具体对应关系,请查看文档《开放平台错误对照表》。

本页内容