轨迹纠偏与里程计算

简介

轨迹纠偏类接口为开发者提供轨迹去噪、抽稀、绑路功能,包括实时位置纠偏、轨迹纠偏、里程纠偏三个接口:

模块 接口名称 功能说明
track getlatestpoint 查询某 entity 的时位置,支持纠偏
getdistance 查询某 entity 一段时间内的轨迹里程,支持纠偏
gettrack 查询某 entity 一段时间内的轨迹点,支持纠偏

注:鹰眼 v3.0使用全新域名http://yingyan.baidu.com/api/v3,请开发者注意。

坐标系说明

目前中国主要有以下三种坐标系:


WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。


GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。


BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标


非中国地区地图,统一使用WGS84坐标


鹰眼 Web服务API v3.0的默认输入输出参数为百度坐标(BD09),同时可通过"coord_type","coord_type_input","coord_type_output"(以各服务参数介绍为准)控制输入输出的坐标类型,鹰眼将自动完成转换。

getlatestpoint——查询纠偏后实时位置

接口说明

查找某 entity实时位置,以及所在道路的限速信息,支持对实时位置进行纠偏。

应用场景

适用于持续追踪某一终端,展示纠偏后的实时位置,并实时判断车辆是否超速。

请求URI

http://yingyan.baidu.com/api/v3/track/getlatestpoint

HTTP请求方式

GET

请求参数

参数名 参数含义 类型 是否必填 备注
ak 用户的ak,授权使用 string
service_id service唯一标识 int
entity_name entity唯一标识 string
process_option 纠偏选项 string(0-128) 默认值为:
need_denoise=1,need_mapmatch=0,
radius_threshold=0,transport_mode=driving

取值规则为:

1.去噪,示例:

need_denoise =0:不去噪

need_denoise =1:去噪


2.绑路,示例:

need_mapmatch=0:不绑路

need_mapmatch=1:绑路


3.定位精度过滤,用于过滤掉定位精度较差的轨迹点,示例:

radius_threshold=0:不过滤

radius_threshold=100:过滤掉定位精度 Radius 大于100的点

说明:当取值=0时,则不过滤;当取值大于0的整数时,则过滤掉radius大于设定值的轨迹点。例如:若只需保留 GPS 定位点,则建议设为:20;若需保留 GPS 和 Wi-Fi 定位点,去除基站定位点,则建议设为:100


4.交通方式,鹰眼将根据不同交通工具选择不同的纠偏策略,目前支持驾车、骑行和步行,示例:

transport_mode=driving

transport_mode=riding

transport_mode=walking

coord_type_output 返回的坐标类型 string 默认值:bd09ll

该字段用于控制返回结果中的坐标类型。可选值为:

gcj02:国测局加密坐标

bd09ll:百度经纬度坐标

该参数仅对国内(包含港、澳、台)轨迹有效,海外区域轨迹均返回 wgs84坐标系

返回值

参数名 参数含义 类型 备注
status 状态码
message 响应信息 string 对status的中文描述
latest_point 实时位置信息
longitude 经度 double
latitude 纬度 double
loc_time 定位时间 UNIX时间戳
radius 定位精度 double
coord_type 坐标类型 string 该字段仅在海外区域时返回,返回值为:wgs84。当坐标位于国内(含港、澳、台)时,返回坐标类型与请求参数 coord_type_output 所设一致,因此不再返回该字段。
direction 方向 int 范围为[0,359],0度为正北方向,顺时针
height 高度 double 只在GPS定位结果时才返回,单位米
speed 速度 double 单位:km/h
floor 楼层 string
object_name 对象数据名称 string 若无值,则不返回该字段
<column_key> 开发者为 track自定义的字段
limit_speed 道路限速 double 单位:km/h

请求示例

http://yingyan.baidu.com/api/v3/track/getlatestpoint?service_id=127980&entity_name=小明&process_option=need_denoise=1,radius_threshold=20,need_mapmatch=1,transport_mode=driving&coord_type_output=bd09ll&ak=<用户的 ak>

getlatestpoint.png

返回示例

JSON
{
   "status": 0,
   "message": "成功"
   "latest_point":
       {
           
           "latitude": 40.0820658,
           "longitude":116.1556024,
           "radius": 3,
           "loc_time": "1442139825",
           "direction": 240,
           "speed": 0.9,
           "height":110.3,
           "floor":"B1",
           "object_name": "小明_1442139825"
       }
      "limit_speed":60

}

getdistance——查询轨迹里程

接口说明

查询某 entity 一段时间内行驶里程,支持:

1. 计算总里程,支持计算纠偏后里程

2. 对于中断或丢失的轨迹区间进行补偿,支持使用直线或驾车/骑行/步行路线规划的里程进行补偿

应用场景

可应用于无需查询轨迹仅查询里程的场景,如:用车实时计费。

请求URI

http://yingyan.baidu.com/api/v3/track/getdistance

HTTP请求方式

GET

请求参数

参数名 参数含义 类型 是否必填 备注
ak 用户的ak,授权使用 string
service_id service唯一标识 int
entity_name entity唯一标识 string
start_time 开始时间 UNIX 时间戳
end_time 结束时间 UNIX时间戳 结束时间不能大于当前时间,且起止时间区间不超过24小时。为提升响应速度,同时避免轨迹点过多造成请求超时(3s)失败,建议缩短每次请求的时间区间,将一天轨迹拆分成多段进行拼接
is_processed 是否返回纠偏后里程 string 默认值:0

取值规则:

0:关闭轨迹纠偏,返回原始轨迹

1:打开轨迹纠偏,返回纠偏后轨迹。

process_option 纠偏选项 string(0-128) 默认值为:
need_denoise=1,need_mapmatch=0,radius_threshold=0,

transport_mode=driving

取值规则为:

1.去噪,示例:

need_denoise =0:不去噪

need_denoise =1:去噪


2.绑路,示例:

need_mapmatch=0:不绑路

need_mapmatch=1:绑路


3. 定位精度过滤,用于过滤掉定位精度较差的轨迹点,示例:

radius_threshold=0:不过滤

radius_threshold=100:过滤掉定位精度 Radius 大于100的点

说明:当取值=0时,则不过滤;当取值大于0的整数时,则过滤掉radius大于设定值的轨迹点。例如:若只需保留 GPS 定位点,则建议设为:20;若需保留 GPS 和 Wi-Fi 定位点,去除基站定位点,则建议设为:100


4.交通方式,鹰眼将根据不同交通工具选择不同的纠偏策略,目前支持驾车、骑行和步行,示例:

transport_mode=driving

transport_mode=riding

transport_mode=walking

supplement_mode 里程补偿方式 string(0-128) 默认值:no_supplement,不补充

在里程计算时,两个轨迹点定位时间间隔5分钟以上,被认为是中断。中断轨迹提供以下5种里程补偿方式。

no_supplement:不补充,中断两点间距离不记入里程。

straight:使用直线距离补充

driving:使用最短驾车路线距离补充

riding:使用最短骑行路线距离补充

walking:使用最短步行路线距离补充

返回值

参数名 参数含义 类型 备注
status 状态码
message 响应信息 string 对status的中文描述
distance 轨迹里程

请求示例

http://yingyan.baidu.com/api/v3/track/getdistance?service_id=127980&entity_name=小明&is_processed=1&process_option=need_denoise=1,radius_threshold=20,need_mapmatch=1,transport_mode=driving&supplement_mode=driving&start_time=1487203200&end_time=1487260800&ak=<用户的 ak>

getdistance.png

返回结果示例

JSON

响应示例
{
   "status": 0,
   "message": "成功"
   "distance":"3634.7"

}

gettrack——轨迹查询与纠偏

接口说明

实时查询某entity一段时间内的行程信息:起终点、总里程、收费里程、轨迹点列表等。 支持进行轨迹去噪、抽稀、绑路、里程补偿等。

请求URI

http://yingyan.baidu.com/api/v3/track/gettrack

HTTP请求方式

GET

请求参数

参数名 参数含义 类型 是否必填 备注
ak 用户的ak,授权使用 string
service_id service唯一标识 int
entity_name entity唯一标识 string
start_time 起始时间(起始的loc_time) UNIX时间戳
end_time 结束时间(结束的loc_time) UNIX时间戳 结束时间不超过当前时间,不能早于起始时间,且与起始时间差在24小时之内。为提升响应速度,同时避免轨迹点过多造成请求超时(3s)失败,建议缩短每次请求的时间区间,将一天轨迹拆分成多段进行拼接
is_processed 是否返回纠偏后轨迹 int 默认值:0

取值规则:

0:关闭轨迹纠偏,返回原始轨迹

1:打开轨迹纠偏,返回纠偏后轨迹。打开纠偏时,请求时间段内轨迹点数量不能超过2万,否则将返回错误。

process_option 纠偏选项 string(0-128) 仅在is_processed=1时生效。默认值为:

need_denoise=1,radius_threshold=0, need_vacuate=1,need_mapmatch=0, radius_threhold=0,transport_mode=driving

取值规则为:

1.去噪,示例:

need_denoise =0:不去噪

need_denoise =1:去噪


2.抽稀,示例:

need_vacuate =0:不抽稀

need_vacuate=1:抽稀


3.绑路,示例:

need_mapmatch=0:不绑路

need_mapmatch=1:绑路


4.定位精度过滤,用于过滤掉定位精度较差的轨迹点,每个轨迹点示例:

radius_threshold=0:不过滤

radius_threshold=20:当取值大于0的整数时,则过滤掉radius大于20的轨迹点。 通常 GPS 定位精度不超过20米,Wi-Fi 定位精度不超过100米


5.交通方式,鹰眼将根据不同交通工具选择不同的纠偏策略,目前支持驾车、骑行和步行,示例:

transport_mode=driving

transport_mode=riding

transport_mode=walking

supplement_mode 里程补偿方式 string(0-128) 默认值:no_supplement

在里程计算时,两个轨迹点定位时间间隔5分钟以上,被认为是中断。中断轨迹提供以下5种里程估算方式。

no_supplement:不补充,中断两点间距离不记入里程。

straight:使用直线距离补充

driving:使用最短驾车路线距离补充

riding:使用最短骑行路线距离补充

walking:使用最短步行路线距离补充

coord_type_output 返回的坐标类型 string 默认值:bd09ll

该字段用于控制返回结果中的坐标类型。可选值为:

gcj02:国测局加密坐标

bd09ll:百度经纬度坐标

该参数仅对国内(包含港、澳、台)轨迹有效,海外区域轨迹均返回 wgs84坐标系

sort_type 返回轨迹点的排序规则 string 默认值:asc

取值规则(注意:与 v1的默认值相反):

asc:按定位时间升序排序(旧->新)

desc:按定位时间降序排序(新->旧)

page_index 分页索引 int(1到2^21-1) 默认值:1

与page_size一起计算从第几条结果返回,代表返回第几页。

page_size 分页大小 int(1-5000) 默认值:100

返回结果最大个数与page_index一起计算从第几条结果返回,代表返回结果中每页有几个轨迹点。

返回值

参数名 参数含义 类型 备注
status 状态码
message 响应信息 string 对status的中文描述
total 忽略掉page_index,page_size后的轨迹点数量 代表一共有多少条符合条件的track
size 返回的结果条数 int 代表本页返回了多少条符合条件的轨迹点数量
distance 此段轨迹的里程数,单位:米 double 符合条件的所有轨迹点的总里程。注意:是total个轨迹点的里程,和分页及本页显示的size无关。
toll_distance 此段轨迹的收费里程数,单位:米 double 收费道路包括高速等收费路段。
start_point 起点信息
longitude 经度 double
latitude 纬度 double
coord_type 坐标类型 string 该字段仅在海外区域时返回,返回值为:wgs84。当坐标位于国内(含港、澳、台)时,返回坐标类型与请求参数 coord_type_output 所设一致,因此不再返回该字段
loc_time 定位时间 UNIX时间戳
end_point 终点信息
longitude 经度 double
latitude 纬度 double
coord_type 坐标类型 string 该字段仅在海外区域时返回,返回值为:wgs84。当坐标位于国内(含港、澳、台)时,返回坐标类型与请求参数 coord_type_output 所设一致,因此不再返回该字段
loc_time 定位时设备的时间 UNIX时间戳
points 历史轨迹点列表
longitude 经度 double
latitude 纬度 double
loc_time 定位时的设备时间 UNIX时间戳 该时间为用户上传的时间
create_time 创建时间 格式化时间 该时间为服务端时间
direction 方向 int 范围为[0,359],0度为正北方向,顺时针
height 高度 double 只在GPS定位结果时才返回,单位米
speed 速度 double 单位:km/h
radius 定位精度 double 单位:m
floor 楼层 string 仅在百度地图高精室内定位合作区域返回
coord_type 坐标类型 string 该字段仅在海外区域时返回,返回值为:wgs84。当坐标位于国内(含港、澳、台)时,返回坐标类型与请求参数 coord_type_output 所设一致,因此不再返回该字段
<column-key> 自定义字段 当用户创建了track的自定义属性,且在创该属性赋有值,才会返回此字段。

请求示例

gettrack.png

返回示例

JSON
{
 "status": 0,
 "message": "成功",
 "total": 10156,
 "size": 100,
 "distance": 70101.769271664,
 "toll_distance": 0,
 "start_point": {
   "longitude": 121.47756835641,
   "latitude": 31.228864478309,
   "loc_time": 1487210008
 },
 "end_point": {
   "longitude": 121.66034736775,
   "latitude": 31.145494901873,
   "loc_time": 1487260798
 },
 "points": [
   {
     "loc_time": 1487210008,
     "latitude": 31.228864478309,
     "longitude": 121.47756835641,
     "create_time": "2017-02-16 09:53:56",
     "direction": 160,
     "height": 5,
     "key1": "value1",
     "radius": 30,
     "speed": 6.8
   },
   {
     "loc_time": 1487210013,
     "latitude": 31.228900948179,
     "longitude": 121.47727614458,
     "create_time": "2017-02-16 09:53:56",
     "direction": 0,
     "height": 36,
     "key1": "value1",
     "radius": 10,
     "speed": 0
   },
   ...
   {
     "loc_time": 1487210503,
     "latitude": 31.232230380323,
     "longitude": 121.47848441484,
     "create_time": "2017-02-16 10:02:09",
     "direction": 228,
     "height": 6,
     "key1": "value1",
     "radius": 30,
     "speed": 1.87
   }

}