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

鹰眼轨迹服务

百度鹰眼是一套轨迹追踪开放服务,开发者在终端集成鹰眼API/SDK 后,可同时管理并追踪数千万终端设备的轨迹,适用于车队管理、共享出行、外勤人员管理、智能穿戴等领域。

产品简介

trackbanner2.png

鹰眼是一套轨迹管理服务,提供各端SDK和API供开发者便捷接入,追踪您所管理的车辆/人员等运动物体。基于鹰眼提供的接口和云端服务,开发者可以迅速构建一套完全属于您自己的完整、精准且高性能的轨迹管理系统,可应用于车队管理、人员管理等领域。鹰眼Android SDK是鹰眼系列产品的一部分,用于在AndroidAPP中集成鹰眼服务,实现轨迹追踪。
重点功能简介
  • 轨迹追踪
    简介
    鹰眼为每一个应用提供1000万终端以上轨迹管理能力,并且支持全球轨迹追踪。鹰眼提供多种API和SDK供开发者从各种终端追踪轨迹,如:手机、GPS定位器、智能后视镜等硬件设备。此外,鹰眼也支持开发者从服务端上传轨迹。
    鹰眼为开发者免费存储最近1年的轨迹数据。鹰眼采用多机房多实例分布式存储,并定期自动备份,保障数据存储安全。
    功能展示
    // 轨迹服务ID 
    long serviceId = 0;
    // 设备标识
    String entityName = "myTrace";
    // 是否需要对象存储服务,默认为:false,关闭对象存储服务。注:鹰眼 Android SDK v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。
    boolean isNeedObjectStorage = false;
    // 初始化轨迹服务
    Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);
    // 初始化轨迹服务客户端
    LBSTraceClient mTraceClient = new LBSTraceClient(getApplicationContext());
    // 定位周期(单位:秒)
    int gatherInterval = 5;
    // 打包回传周期(单位:秒)
    int packInterval = 10;
    // 设置定位和打包周期
    mTraceClient.setInterval(gatherInterval, packInterval);
    // 初始化轨迹服务监听器
    OnTraceListener mTraceListener = new OnTraceListener() {
    // 开启服务回调
    @Override
    public void onStartTraceCallback(int status, String message) {}
    // 停止服务回调
    @Override
    public void onStopTraceCallback(int status, String message) {}
    // 开启采集回调
    @Override
    public void onStartGatherCallback(int status, String message) {}
    // 停止采集回调
    @Override
    public void onStopGatherCallback(int status, String message) {}
    // 推送回调
    @Override
    public void onPushCallback(byte messageNo, PushMessage message) {}
    };
    // 开启服务
    mTraceClient.startTrace(mTrace, mTraceListener);
    // 开启采集
    mTraceClient.startGather(mTraceListener);
    
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/gather1.mp4
  • 空间检索
    简介
    鹰眼提供丰富的空间搜索能力,支持搜索圆形、多边形、行政区范围内的终端实时位置,并统计终端数量。利用该服务,开发者可实现例如:搜索当前地图视野内的终端、北京市内的终端等功能。
    功能展示
    // 请求标识
    int tag = 5;
    // 轨迹服务ID
    long serviceId = 0;
    //设置活跃时间
    long activeTime = System.currentTimeMillis() / 1000 - 5*60; 
    // 过滤条件
    FilterCondition filterCondition = new FilterCondition();
    // 查找当前时间5分钟之内有定位信息上传的entity
    filterCondition.setActiveTime(activeTime);
    // 返回结果坐标类型
    CoordType coordTypeOutput = CoordType.bd09ll;
    //中心点
    LatLng center = new LatLng(40.0569, 116.307553);
    //检索半径
    double radius=1000;
    // 分页索引
    int pageIndex = 1;
    // 分页大小
    int pageSize = 100;
    //根据圆心半径和筛选条件进行搜索
    AroundSearchRequest aroundSearchRequest = new AroundSearchRequest( tag, serviceId,  center,  radius,filterCondition,  coordTypeOutput, pageIndex,  pageSize);
    OnEntityListener onEntityListener = new OnEntityListener() {
         @Override
          public void onAroundSearchCallback(AroundSearchResponse aroundSearchResponse) {
              super.onAroundSearchCallback(aroundSearchResponse);
                  //周边搜索回调接口
               }
    
             .....
          };
     mTraceClient.aroundSearchEntity(aroundSearchRequest, onEntityListener);
                     
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/space2.mp4
  • 轨迹查询、纠偏与展示
    简介
    轨迹查询:利用鹰眼高性能轨迹查询服务,开发者实时查询任意时段的轨迹。实时查询是指:轨迹点一旦成功上传到鹰眼云端,在小于100毫秒的时间内,即可通过接口查询到该轨迹点。鹰眼还提供轨迹批量导出功能,供开发者下载历史轨迹数据。
    轨迹纠偏:为纠正轨迹漂移,鹰眼提供专业的轨迹纠偏绑路。利用该服务,开发者可纠正轨迹漂移,展示平滑连贯的轨迹。鹰眼分别针对驾车、骑行、步行提供了不同的轨迹纠偏绑路算法,适用于多种交通工具的轨迹校正。
    功能展示
    // 请求标识
    int tag = 1;
    // 轨迹服务ID
    long serviceId = 0;
    // 设备标识
    String entityName = "myTrace";
    // 创建历史轨迹请求实例
    HistoryTrackRequest historyTrackRequest = new HistoryTrackRequest(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 = new ProcessOption();
    // 设置需要去噪
    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 = new OnTrackListener() {
       @Override
       public void onHistoryTrackCallback(HistoryTrackResponse response) {
              // 历史轨迹回调
       }
    };
    // 查询轨迹
    mTraceClient.queryHistoryTrack(historyTrackRequest, mTrackListener);
    
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/TraceQuery.mp4
  • 里程计算与补偿
    简介

    鹰眼Android SDK提供了queryDistance()方法,用于计算指定时间段内的轨迹里程,支持:计算纠偏后的里程,用路线规划补偿中断轨迹的里程。

    功能展示
    // 请求标识
    int tag = 2;
    // 轨迹服务ID
    long serviceId = 0;
    // 设备标识
    String entityName = "myTrace";
    // 创建里程查询请求实例
    DistanceRequest distanceRequest = new DistanceRequest(tag, serviceId, entityName);
    // 开始时间(单位:秒)
    long startTime = System.currentTimeMillis() / 1000 - 12 * 60 * 60;
    // 结束时间(单位:秒)
    long endTime = System.currentTimeMillis() / 1000;
    // 设置开始时间
    distanceRequest.setStartTime(startTime);
    // 设置结束时间
    distanceRequest.setEndTime(endTime);
    // 设置需要纠偏
    distanceRequest.setProcessed(true);
    // 创建纠偏选项实例
    ProcessOption processOption = new ProcessOption();
    // 设置需要去噪
    processOption.setNeedDenoise(true);
    // 设置需要绑路
    processOption.setNeedMapMatch(true);
    // 设置交通方式为驾车
    processOption.setTransportMode(TransportMode.driving);
    // 设置纠偏选项
    distanceRequest.setProcessOption(processOption);
    // 设置里程填充方式为驾车
    distanceRequest.setSupplementMode(SupplementMode.driving);
    // 初始化轨迹监听器
    OnTrackListener mTrackListener = new OnTrackListener() {
        @Override
        public void onDistanceCallback(DistanceResponse response) {
                // 里程回调
        }
    };
    // 查询里程
    mTraceClient.queryDistance(distanceRequest, mTrackListener);
    
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/distance1.mp4
  • 地理围栏(监控对象状态)
    简介
    鹰眼提供地理围栏监控服务,开发者可利用鹰眼创建多边形、路线、行政区等类型的地理围栏,鹰眼自动监控终端进出围栏行为,并推送报警至鹰眼SDK或开发者服务端。利用该服务,开发者可实现例如:利用行政区围栏监控车辆是否驶出海淀区、利用多边形围栏监控物流车辆是否准时到达站点等功能。
    功能展示
     // 请求标识
    int tag = 10;
    // 轨迹服务ID
    long serviceId = 0;
    // 监控对象
    String monitoredPerson = "myTrace";
    // 围栏编号列表
    List<Long> fenceIds = null;
    // 位置坐标
    com.baidu.trace.model.LatLng location = new com.baidu.trace.model.LatLng(40.0552720000, 116.307655000);
    // 坐标类型
    CoordType coordType = CoordType.bd09ll;
    
    
    // 创建查询服务端围栏指定位置上监控状态请求实例
    MonitoredStatusByLocationRequest request = MonitoredStatusByLocationRequest.buildServerRequest(tag,serviceId, monitoredPerson, fenceIds, location, coordType);
    
    
    // 初始化围栏监听器
    OnFenceListener mFenceListener = new OnFenceListener() {
         @Override
         public void onMonitoredStatusByLocationCallback(MonitoredStatusByLocationResponse response) { 
                  //查询指定位置监控对象状态回调接口
         }
        ......
    }
    
    // 查询围栏监控者状态
    mTraceClient.queryMonitoredStatusByLocation(request, mFenceListener);
    
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/Fence.mp4
  • 轨迹分析(停留点)
    简介
    鹰眼为开发者提供停留点、超速(基于道路限速)、急变速等运动行为分析。利用该服务,开发者可分析一段轨迹中有哪些停留点、在何处出现了超速等危险驾驶行为。
    功能展示
     // 请求标识
    int tag = 1;
    // 轨迹服务ID
    long serviceId = 0;
    // 设备标识
    String entityName = "myTrace";
    //创建停留点查询请求实例
    StayPointRequest stayPointRequest = new StayPointRequest();
    // 开始时间2017-4-17 0:0:0的UNIX 时间戳
    long startTime = 1492358400;
    // 结束时间2017-4-17 23:59:59的UNIX 时间戳
    long endTime = 1492444799;
    // 设置开始时间
    stayPointRequest.setStartTime(startTime);
    // 设置结束时间
    stayPointRequest.setEndTime(endTime);
    // 创建纠偏选项实例
    ProcessOption processOption = new ProcessOption();
    // 设置需要绑路
    processOption.setNeedMapMatch(true);
    // 设置交通方式为驾车
    processOption.setTransportMode(TransportMode.driving);
    // 设置纠偏选项
    stayPointRequest.setProcessOption(processOption);
    //停留时长
    long stayTime=600*10;
    //设置停留时间阈值 即停留多长时间被认为是一次停留,单位:秒,默认值:600,即10分钟
    stayPointRequest.setStayTime(stayTime);
    //停留半径
    int radius=20;
    //设置停留半径: 即系统判断在半径为stayRadius的圆形范围内停留时间超过stayTime,则被认为是一次停留
    stayPointRequest.setStayRadius(radius);
    //初始化停留点监听
    OnAnalysisListener  mAnalysisListener = new OnAnalysisListener() {
        @Override
         public void onStayPointCallback(StayPointResponse response) {
               //停留点分析回调
         }
               ......
    };
    //停留点查询
    mTraceClient.queryStayPoint(stayPointRequest, mAnalysisListener);
    
    http://mapopen-pub-androidsdk.cdn.bcebos.com/tracesdk/video/fenxi.mp4
鹰眼服务流程
overview1.png
用户须知

百度Android SDK提供的所有服务是免费的,您需申请密钥(key)后,才可使用百度鹰眼Android SDK。任何非营利性产品请直接使用,商业目的产品使用前请参考使用须知。在您使用百度鹰眼Android SDK之前,请先阅读百度地图API使用条款

开始使用