简介
鹰眼Android SDK支持上传、查询图像数据,可应用于车载监控设备、物流、外勤等需上传图像数据的场景:
1. 车载监控设备:如后视镜设备,定期上传行车影像
2. 物流:物流司机运输途中遇到拥堵、事故等异常情况时,需拍摄图片上报异常
3. 外勤:外勤人员通过在指定地点拍摄照片打卡
该功能包括三个接口:
1. 上传图片
2. 获取图片
3. 获取图片URL,支持加水印
提示
同一个 service 中,不同的图片文件是用 object_key 来唯一标识的。 每个图片文件的object_key 由开发者在上传图片时指定,因此开发者需自行保证其唯一性,例如:使用 entityName 加当前的时间戳来生成object_key。
上传图片
putObject()方法用于上传图像,该方法使用示例:
// 请求标识 int tag = 5; // 轨迹服务ID long serviceId = 0; // 图像文件的唯一标识。同一 service 下,不同的图像文件用objectKey来标识 String objectKey = "track.jpg"; // 对象类型 BosObjectType objectType = BosObjectType.image; //设置图片读取路径,鹰眼 SDK 将从所设置的本地路径读取该图片文件 String path = "/storage/emulated/0/LBSTrace/com.baidu.track/track.jpg"; File file = new File(path); // 初始化监听器 OnBosListener mBosListener = new OnBosListener() { // 上传对象(图片)回调 @Override public void onPutObjectCallback(BosPutObjectResponse response) {} // 获取对象(图片)回调 @Override public void onGetObjectCallback(BosGetObjectResponse response) {} // 生成签名对象(图片)URL @Override public void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) {} }; // 创建上传对象(图片)请求实例 BosPutObjectRequest request = BosPutObjectRequest.buildFileRequest(tag, serviceId, objectKey, objectType, file); // 请求上传对象(图片) mTraceClient.putObject(request, mBosListener);
获取图片
getObject()方法用于获取图像文件,支持通过objectKey查询图像文件,该方法使用示例:
// 请求标识 int tag = 6; // 轨迹服务ID long serviceId = 0; // 对象key(即文件名称包括后缀,如track.jpg、track.png) String objectKey = "track.jpg"; // 对象类型 BosObjectType objectType = BosObjectType.image; // 创建获取对象(图片)请求实例 BosGetObjectRequest request = new BosGetObjectRequest(tag, serviceId, objectKey, objectType); // 初始化监听器 OnBosListener mBosListener = new OnBosListener() { // 上传对象(图片)回调 @Override public void onPutObjectCallback(BosPutObjectResponse response) {} // 获取对象(图片)回调 @Override public void onGetObjectCallback(BosGetObjectResponse response) {} // 生成签名对象(图片)URL // 请求获取对象(图片) mTraceClient.getObject(request, mBosListener);
获取图片URL
generatePresignedUrl()方法用于生成访问指定图片的 URL 链接,支持生成水印。
// 请求标识 int tag = 7; // 轨迹服务ID long serviceId = 0; // 对象key(即文件名称包括后缀,如track.jpg、track.png) String objectKey = "track.jpg"; // 对象类型 BosObjectType objectType = BosObjectType.image; // 创建请求实例 BosGeneratePresignedUrlRequest request = new BosGeneratePresignedUrlRequest(tag, serviceId, objectKey, objectType); // 图片处理命令 ImageProcessCommand imageProcessCommand = new ImageProcessCommand(); imageProcessCommand.setAngle(180); request.setImageProcessCommand(imageProcessCommand); // 文字水印命令 TextWatermarkCommand textWatermarkCommand = new TextWatermarkCommand(); textWatermarkCommand.setText("百度鹰眼"); textWatermarkCommand.setFontFamily(FontFamily.KaiTi); textWatermarkCommand.setAngle(45); textWatermarkCommand.setFontColor("0000FF"); request.setTextWatermarkCommand(textWatermarkCommand); // 初始化监听器 OnBosListener mBosListener = new OnBosListener() { // 上传对象(图片)回调 @Override public void onPutObjectCallback(BosPutObjectResponse response) {} // 获取对象(图片)回调 @Override public void onGetObjectCallback(BosGetObjectResponse response) {} // 生成签名对象(图片)URL @Override public void onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse response) {} }; // 请求生成签名对象(图片)URL mTraceClient.generatePresignedUrl(request, mBosListener);
图片与轨迹点的绑定
鹰眼 SDK 除提供图像存储服务外,在 track 的系统字段中新增了 object_name 字段,用于存储轨迹点对应的图像文件名。即支持在查询轨迹或实时位置时,查询轨迹点的图像文件(详见:轨迹点自定义属性数据上传)