浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

简介

各种定位方式或多或少都存在着一定的误差。如果是在室外,如果GPS信号比较好,定位结果会比较准确。当GPS信号不好的时候(例如高架桥下、隧道、高层建筑遮挡等),可能就会使用WIFI或基站定位,特别是当周边WIFI热点比较少的时候会使用基站定位,定位误差会有所加大,产生轨迹漂移的现象。


为了更好地帮助开发者管理轨迹和展现轨迹,鹰眼提供了轨迹纠偏功能,达到优化轨迹、校正里程等效果。(注:纠偏轨迹与原始轨迹数据相互独立,原始轨迹数据仍被保留并可查询。)

如何使用轨迹纠偏

在查询轨迹时设置是否纠偏(isProcessed)以及相应的纠偏选项(processOption)。


1. isProcessed=1设置需要纠偏,为0则返回原始轨迹


2. 设置processOption纠偏选项,纠偏选项有以下4种:

①need_denoise:去噪,默认为1


②need_vacuate:抽稀,默认为1


③need_mapmatch:绑路,之前未开通绑路的service,默认值为0;之前已开通绑路的service,默认值为1。(目前仅对驾车轨迹有效,会判断正逆行。绑路时会依据道路形状进行补点(例如:原始轨迹在道路拐弯处缺点,绑路将进行补充,补点的定位时间目前取的是前一个原始点的定位时间。)


④radius:精度过滤,默认为0:不过滤。(每个轨迹点鹰眼都会记录它的定位精度,如设置该值,则会将定位精度radius大于该值的轨迹点过滤掉。目前各种定位方式的平均精度为:GPS:10米,WIFI定位:24米,基站定位:210米。)


以上选项支持多选,设置时用英文逗号","分割,若不设置某选项则按默认值处理。


例如:

- 若当前业务需求只要求去除噪点,尽量保留原始轨迹点,则可以将纠偏选项设置为:

need_denoise=1,need_vacuate=0,need_mapmatch=0;


- 若当前业务需求要求在保证轨迹正确性的前提下,尽量去掉重复或者不必要的轨迹点,减少点量,则可以将纠偏选项设置为:

need_denoise=1,need_vacuate=1,need_mapmatch=0;


-若当前业务需求绑路,可以将纠偏选项设置为:

need_denoise=1,need_vacuate=1,need_mapmatch=1;

注:绑路时建议同时选择去噪,否则噪点容易绑路失败


-若当前业务只关注定位精度较高的GPS数据,可以将纠偏选项设置为:

need_denoise=0,need_vacuate=0,need_mapmatch=0,radius=15;


使用示例:

 
// 轨迹服务ID
  long serviceId = 10000;
  // entity标识
  String entityName = "要查询的entity";
  // 是否返回精简结果
  int simpleReturn = 0;
  // 是否纠偏
   int isProcessed = 0;
        // 纠偏选项
  String processOption = null;
  // 开始时间
  int startTime = (int)(System.currentTimeMillis()/1000);
  // 分页大小
  int pageSize = 5000;
  // 分页索引
  int pageIndex = 1;
 
    // 间隔打包周期,轮询调用queryHistoryTrack()
private void queryHistoryTrack() {
   // 结束时间
  int endTime = (int)(System.currentTimeMillis()/1000);
  client.queryHistoryTrack(serviceId , entityName, simpleReturn, isProcessed,   
  processOption, startTime, endTime, pageSize, pageIndex, trackListener);
 
//在OnTrackListener的onQueryHistoryTrackCallback()回调接口中,判断是否已查询完毕。
OnTrackListener trackListener = new OnTrackListener() {
        public void onQueryHistoryTrackCallback(String message) {
               JSONObject dataJson = new JSONObject(message);
               int  total = dataJson.getInt("total");
               if (total > (pageSize * pageIndex)) {
               queryHistoryTrack(++pageIndex);
               }
             // 解析并保存轨迹信息
         }
}
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消