各种定位方式或多或少都存在着一定的误差。如果是在室外,如果gps信号比较好,定位结果会比较准确。当gps信号不好的时候(例如高架桥下、隧道、高层建筑遮挡等),可能就会使用wifi或基站定位,特别是当周边wifi热点比较少的时候会使用基站定位,定位误差会有所加大,产生轨迹漂移的现象。
为了纠正轨迹漂移,提升轨迹和里程的准确性,鹰眼提供了高性能的轨迹纠偏服务,且具有以下特性:
鹰眼轨迹纠偏包括以下步骤:
对于明显的噪点进行识别并去除
关于去噪的使用教程请见:
对于冗余的数据点进行去除,如一条直线上的多个轨迹点,减少数据量,提升展示效率
关于抽稀的使用教程请见:
将轨迹点绑定至道路,达到纠正偏移轨迹、补充中断轨迹点(如:轨迹不连续、进入隧道导致的丢点)、补充道路拐点等效果。
关于绑路的使用教程请见:
对于轨迹中前后轨迹点定位时间相差>5分钟,且距离大于300米地区间,鹰眼认定其为中断区间。对于中断区间,鹰眼支持根据对应地交通方式(驾车、骑行、步行)使用路线规划进行轨迹点和里程的补偿,实现轨迹的完整性。
关于中断区间补偿的使用教程请见:
在查询轨迹时设置是否纠偏(isprocessed)并设置纠偏选项(processoption)。鹰眼在 processoption 中开放了多种纠偏选项供开发者设置,包括:
1. 去噪:可设置是否需要去除角度、速度和方向异常的轨迹点
2. 绑路:设置是否将轨迹点绑定至路网道路
3. 抽稀:设置是否进行抽稀处理,对冗余的轨迹点进行抽稀去除处理,如一条直线上除起终点外的多个轨迹点
4. 定位精度过滤:设置定位精度过滤阈值,用于过滤掉定位精度较差的轨迹点。
5. 交通方式:可指明轨迹对应交通方式,鹰眼纠偏模块将根据不同的交通方式采用不同的轨迹纠偏处理。
同时,鹰眼支持对中断5分钟以上的轨迹区间进行里程补偿,支持使用直线/驾车/骑行/步行这几种方式补偿中断区间的里程。轨迹纠偏服务将根据开发者的以上设置来进行轨迹纠偏。
// 请求标识int tag =1;// 轨迹服务idlong serviceid =0;// 设备标识string entityname ="mytrace";// 创建历史轨迹请求实例historytrackrequest historytrackrequest =newhistorytrackrequest(tag, serviceid, entityname);// 开始时间2017-4-17 0:0:0的unix 时间戳long starttime =1492358400;// 结束时间2017-4-17 23:59:59的unix 时间戳long endtime =1492444799;// 设置开始时间historytrackrequest.setstarttime(starttime);// 设置结束时间historytrackrequest.setendtime(endtime);// 设置需要纠偏historytrackrequest.setprocessed(true);// 创建纠偏选项实例processoption processoption =newprocessoption();// 设置需要去噪processoption.setneeddenoise(true);// 设置需要抽稀processoption.setneedvacuate(true);// 设置需要绑路processoption.setneedmapmatch(true);// 设置精度过滤值(定位精度大于100米的过滤掉)processoption.setradiusthreshold(100);// 设置交通方式为驾车processoption.settransportmode(transportmode.driving);// 设置纠偏选项historytrackrequest.setprocessoption(processoption);// 设置里程填充方式为驾车historytrackrequest.setsupplementmode(supplementmode.driving);// 初始化轨迹监听器ontracklistener mtracklistener =newontracklistener(){// 历史轨迹回调@overridepublicvoidonhistorytrackcallback(historytrackresponse response){}};// 查询轨迹mtraceclient.queryhistorytrack(historytrackrequest, mtracklistener);
上一篇
下一篇
本篇文章对您是否有帮助?