全部服务产品
开发者频道
定价
登录

所有文档

轨迹纠偏API

服务功能
下载开发文档
接口说明

轨迹纠偏服务(又名Trackrectify API)是一类Web API接口服务,用于纠正一段或多段轨迹的漂移,通过去除噪点、绑路、补充道路形状点、抽稀等方式,还原真实轨迹。

使用说明

用于对一段连续长轨迹进行纠偏绑路、计算里程、返回道路等级和道路限速信息,如:对一辆车一个行程或一天的轨迹进行纠偏并计算里程。

API服务地址

https://api.map.baidu.com/rectify/v1/track?
//POST请求

请求参数
参数名称参数含义类型必选备注
ak用户的AK,授权使用string
point_list轨迹点序列string(1-1M)

最多不能超过2000个轨迹点,且轨迹里程不超过500公里(注:若轨迹里程超长,可能会出现响应时间过长或超时)。point_list格式为json, 其中每个point必须包含:latitude,longitude,coord_type_input,loc_time这4个字段,可选speed,direction,height,radius这4个字段,其他字段会被舍弃。 取值规则:
latitude:纬度,支持小数点后6位
longitude:经度,支持小数点后6位
coord_type_input:轨迹点的坐标系,支持以下值:bd09ll(百度经纬度坐标)、gcj02(国测局加密坐标)、wgs84(GPS所采用的坐标系)
loc_time:轨迹点的定位时间,使用UNIX时间戳(秒级)
speed:轨迹点的速度,double类型,单位:公里/小时
direction:轨迹点的方向,int类型,单位:范围为[0,359],0度为正北方向,顺时针方向递增
height:轨迹点的高度,double类型,单位:米
radius:定位时返回的定位精度,double类型,单位:米

rectify_option纠偏设置string(0-128)

支持以下配置项,多个项之间用”|”竖线相隔。默认值为:need_mapmatch:1|transport_mode:auto|denoise_grade:1|vacuate_grade:1 取值规则为:
1. need_mapmatch(绑路)
是否需要将轨迹点绑路并补充道路形状点 ,示例:
need_mapmatch:0 不绑路
need_mapmatch:1 绑路
2. transport_mode(交通方式)
根据不同交通工具选择不同的纠偏策略和参数,目前支持:自动(即鹰眼自动识别的交通方式)、驾车、骑行和步行。示例:
transport_mode:auto
transport_mode:driving
transport_mode:riding
transport_mode:walking
3. denoise_grade(去噪力度)
取值范围[0,5],数值越大去噪力度越大,代表越多的点会被当做噪点去除。若取值0,则代表不去噪。示例:
denoise_grade:0 (不去噪)
denoise_grade:1 (系统默认去噪)
denoise_grade:2(系统默认去噪,同时去除定位精度低于500的轨迹点,相当于保留GPS定位点、大部分Wi-Fi定位点和精度较高的基站定位点)
denoise_grade:3(系统默认去噪,同时去除定位精度低于100的轨迹点,相当于保留GPS定位点和大部分Wi-Fi定位点)
denoise_grade:4(系统默认去噪,同时去除定位精度低于50的轨迹点,相当于保留GPS定位点和精度较高的Wi-Fi定位点)
denoise_grade:5(系统默认去噪,同时去除定位精度低于20的轨迹点,相当于仅保留GPS定位点)
4. vacuate_grade(抽稀力度)
取值范围[0,5],数值越大抽稀度力度越大,代表轨迹会越稀疏。若取值0,则代表不抽稀。示例:
vacuate_grade:0(不抽稀)
vacuate_grade:2(抽稀力度为2)

supplement_mode里程补偿设置string(0-128)

默认值:no_supplement
在里程计算时,两个轨迹点定位时间间隔5分钟以上,被认为是中断。中断轨迹提供以下5种里程估算方式。
no_supplement:不补充,中断两点间距离不记入里程
straight:使用直线距离补充
driving:使用最短驾车路线距离补充
riding:使用最短骑行路线距离补充
walking:使用最短步行路线距离补充

coord_type_output返回的坐标类型string

默认值:bd09ll
该字段用于控制返回结果中的坐标类型。可选值为:
gcj02:国测局加密坐标
bd09ll:百度经纬度坐标
该参数仅对国内(包含港、澳、台)轨迹有效,海外区域轨迹均返回 wgs84坐标系

sn用户的权限签名string

若用户所用ak的校验方式为sn校验时该参数必须。 sn校验说明

返回参数
参数名含义类型备注
status状态码int详见状态码定义
message响应信息string对status的中文描述
total忽略掉page_index,page_size后的轨迹点数量代表一共有多少条符合条件的track
distance此段轨迹的里程数,单位:米double符合条件的所有轨迹点的总里程。
toll_distance此段轨迹的收费里程数,单位:米double收费道路包括高速等收费路段。
points历史轨迹点列表
longitude经度double
latitude纬度double
loc_time定位时的设备时间UNIX时间戳该时间为用户上传的时间
direction方向int范围为[0,359],0度为正北方向,顺时针
height高度double只在GPS定位结果时才返回,单位米
speed速度double单位:km/h
radius定位精度double单位:m
coord_type坐标类型string该字段仅在海外区域时返回,返回值为:wgs84。当坐标位于国内(含港、澳、台)时,返回坐标类型与请求参数 coord_type_output 所设一致,因此不再返回该字段
示例代码
填写您的AK

输入AK可生成包含IP/SN校验方式的代码

<?php
// 此处填写你在控制台-应用管理-创建应用后获取的AK
$ak = '您的AK';
// 发起一个http post请求,并返回请求的结果
// $url字段为请求的地址
// $param字段为请求的参数
function request_post($url = '', $param = array()) {
if (empty($url) || empty($param)) {
return false;
}
$curl = curl_init(); // 初始化curl
curl_setopt($curl, CURLOPT_URL, $url); // 设置指定url
curl_setopt($curl, CURLOPT_TIMEOUT, 1000); // 设置超时时间1秒
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // curl不直接输出到屏幕
curl_setopt($curl, CURLOPT_HEADER, 0); // 设置header
// 以下两行不对https做证书及服务器校验,真实项目中请根据实际情况调整。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST, 1); // 设置POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
$data = curl_exec($curl); // 运行curl
if (!$data) {
print("an error occured in function request_post(): " . curl_error($curl) . "\n");
}
curl_close($curl);
return $data;
}
// 请求地址
$url = 'https://api.map.baidu.com/rectify/v1/track';
// 构造请求
// 设置您的AK
$param['ak'] = $ak;
// 设置要纠偏的轨迹
$param['point_list'] = '[{"loc_time":1624295452,"latitude":36.2715924153,"longitude":120.401133898,"coord_type_input":"bd09ll"},{"loc_time":1624295615,"latitude":36.2710674153,"longitude"
:120.401122046,"coord_type_input":"bd09ll"},{"loc_time":1624295715,"latitude":36.2710674153,"longitude":120.401122046,"coord_type_input":"bd09ll"},{"loc_time":1624295815,"latitude":36.2697068
1,"longitude":120.406126,"coord_type_input":"bd09ll"},{"loc_time":1624295915,"latitude":36.2626899159,"longitude":120.406257629,"coord_type_input":"bd09ll"},{"loc_time":1624296015,"latitude":
36.2554959254,"longitude":120.401709345,"coord_type_input":"bd09ll"},{"loc_time":1624296115,"latitude":36.2482072286,"longitude":120.398668032,"coord_type_input":"bd09ll"},{"loc_time":1624296
215,"latitude":36.2453202208,"longitude":120.390573255,"coord_type_input":"bd09ll"},{"loc_time":1624296315,"latitude":36.2462943954,"longitude":120.378697631,"coord_type_input":"bd09ll"},{"lo
c_time":1624296415,"latitude":36.2464401658,"longitude":120.368128971,"coord_type_input":"bd09ll"},{"loc_time":1624296515,"latitude":36.2411743783,"longitude":120.360663512,"coord_type_input"
:"bd09ll"}]';
// 设置纠偏参数
$param['rectify_option'] = 'need_mapmatch:1|transport_mode:driving|denoise_grade:1|vacuate_grade:1';
// 发送请求
$res = request_post($url, $param);
// 将原始返回的结果打印出来
print("请求的原始返回结果为:\n");
print($res . "\n");
?>
{
"status":0,
"message":"成功",
"total":38,
"distance":7004.2268595795,
"toll_distance":0,
"low_speed_distance":0,
"points":[
{
"loc_time":1624295452,
"latitude":36.271593819832,
"longitude":120.40114354244,
"speed":1.2875764132772,
"direction":178.38227415059
},
{
"loc_time":1624295615,
"latitude":36.270452489393,
"longitude":120.40113828855,
"speed":8.4496861276931,
"direction":93.59750062432
},
...
{
"loc_time":1624296515,
"latitude":36.241216624104,
"longitude":120.36069744837,
"speed":31.788581427876,
"direction":130.91381579391
}
]
}
在线运行
参数备注必选
point_list
轨迹点序列
rectify_option
纠偏设置
请求示例
POST BODY中请求参数填写示例
ak:<您的ak>
point_list: [{"loc_time":1624295452,"latitude":36.2715924153,"longitude":120.401133898,"coord_type_input":"bd09ll"},{"loc_time":1624295615,"latitude":36.2710674153,"longitude":120.401122046,"coord_type_input":"bd09ll"},{"loc_time":1624295715,"latitude":36.2710674153,"longitude":120.401122046,"coord_type_input":"bd09ll"},{"loc_time":1624295815,"latitude":36.26970681,"longitude":120.406126,"coord_type_input":"bd09ll"},{"loc_time":1624295915,"latitude":36.2626899159,"longitude":120.406257629,"coord_type_input":"bd09ll"},{"loc_time":1624296015,"latitude":36.2554959254,"longitude":120.401709345,"coord_type_input":"bd09ll"},{"loc_time":1624296115,"latitude":36.2482072286,"longitude":120.398668032,"coord_type_input":"bd09ll"},{"loc_time":1624296215,"latitude":36.2453202208,"longitude":120.390573255,"coord_type_input":"bd09ll"},{"loc_time":1624296315,"latitude":36.2462943954,"longitude":120.378697631,"coord_type_input":"bd09ll"},{"loc_time":1624296415,"latitude":36.2464401658,"longitude":120.368128971,"coord_type_input":"bd09ll"},{"loc_time":1624296515,"latitude":36.2411743783,"longitude":120.360663512,"coord_type_input":"bd09ll"}]
rectify_option: need_mapmatch:1|transport_mode:driving|denoise_grade:1|vacuate_grade:1

上一篇

使用准备

下一篇

更新日志

本篇文章对您是否有帮助?