各种定位方式或多或少都存在着一定的误差,GPS信号不好的时候(例如,楼宇密集处、高架桥下、隧道等),可能就会使用WI-FI或基站定位,特别是当周边WI-FI热点比较少的时候会使用基站定位,定位误差会有所加大,产生轨迹漂移的现象。
为了纠正轨迹漂移,提升轨迹和里程的准确性,鹰眼在轨迹查询服务中提供了高性能的轨迹纠偏功能,其特性如下:
1. 高性能:一次请求支持对2万个轨迹点进行批量纠偏处理,响应时间不超过3秒
2. 可配置:开放多种纠偏因子供开发者自行调节
3. 适用性:针对驾车、骑行和步行不同出行模式执行对应的轨迹纠偏策略,并针对停留点漂移进行了单独识别与处理,故对于移动和停留期间的轨迹均有优异的纠偏效果
鹰眼的纠偏步骤如下:


以 Web 服务 API 为例,介绍轨迹纠偏的使用方法,Android 和 iOS SDK 实现原理一致,但参数名称稍有差异。
为实现轨迹纠偏,开发者可在查询轨迹时设置两个参数:是否纠偏(is_rocessed)和 纠偏选项(process_option)来实现。
当is_processed=0时,表示关闭纠偏,此时 process_option不生效,返回原始轨迹
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:过滤掉radius大于20的轨迹点。
radius_threshold的设置参考:若只希望保留GPS定位结果,则可设置为20(通常 GPS 定位精度不大于20);若希望保留GPS和Wi-Fi定位结果,去除基站定位结果,则可设置为100(通常Wi-Fi 定位精度不超过100米)。
5.交通方式,鹰眼将根据不同交通工具选择不同的纠偏策略,目前支持驾车、骑行和步行,示例:
transport_mode=driving
transport_mode=riding
transport_mode=walking
绑路时会依据道路形状进行补点,例如:原始轨迹在道路拐弯处缺点,绑路将进行补充,补点的定位时间目前取的是前一个原始点的定位时间。轨迹纠偏需要一定的上下文进行分析,为保证纠偏效果,尽量保证查询区间内有5个以上的轨迹点。对于纠偏选项的使用,开发者可根据业务需要灵活使用,例如:
1. 若当前业务需求只要求去除噪点,尽量保留原始轨迹点,则可以将纠偏选项设置为:need_denoise=1,need_vacuate=0,need_mapmatch=0;
2. 若当前业务需求要求在保证轨迹正确性的前提下,尽量去掉重复或者不必要的轨迹点,减少点量,则可以将纠偏选项设置为:need_denoise=1,need_vacuate=1,need_mapmatch=0;
3. 若当前业务需求绑路,可以将纠偏选项设置为:need_denoise=1,need_vacuate=1,need_mapmatch=1;
4. 若当前业务需求绑路,出行方式是骑行,可以将纠偏选项设置为: need_denoise=1,need_vacuate=1,need_mapmatch=1,transport_mode=2;
注:绑路时建议同时选择去噪,否则噪点容易绑路失败