object

简介

鹰眼Android SDK支持上传、查询图像数据,可应用于车载监控设备、物流、外勤等需上传图像数据的场景:

1. 车载监控设备:如后视镜设备,定期上传行车影像

2. 物流:物流司机运输途中遇到拥堵、事故等异常情况时,需拍摄图片上报异常

3. 外勤:外勤人员通过在指定地点拍摄照片打卡


该功能包括三个接口:

1. 上传图片

2. 获取图片

3. 获取图片URL,支持加水印


注意:若需使用图像存储服务,需在工程配置时导入bos-android-sdk-1.0.2.jar(详见配置工程-->导入库文件)。并且在初始化轨迹服务时,将isNeedObjectStorage参数置为true(详见HelloTrace示例第四步:初始化轨迹服务

提示

同一个 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 字段,用于存储轨迹点对应的图像文件名。即支持在查询轨迹或实时位置时,查询轨迹点的图像文件(详见:轨迹点自定义属性数据上传