百度鹰眼SDK文档勘误 —— 查询实时位置

SDK 版本: 3.1.0
sdk文档:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/searchtrack

查询实时位置
查询一或多个被追踪者的实时位置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//鹰眼服务ID
long serviceId = <开发者创建的鹰眼服务的ID>;
//entity标识列表(多个entityName,以英文逗号"," 分割)
String entityNames = "mycar1,mycar2,mycar3";
//检索条件(格式为 : "key1=value1,key2=value2,.....")
String columnKey = "car_team=1";
//返回结果的类型(0 : 返回全部结果,1 : 只返回entityName的列表)
int returnType = 0;
//活跃时间,UNIX时间戳(指定该字段时,返回从该时间点之后仍有位置变动的entity的实时点集合)
int activeTime = (int) (System.currentTimeMillis() / 1000 - 12 * 60 * 60);
//分页大小
int pageSize = 1000;
//分页索引
int pageIndex = 1;
//Entity监听器
OnEntityListener entityListener = new OnEntityListener() {
// 查询失败回调接口
@Override
public void onRequestFailedCallback(String arg0) {
System.out.println("entity请求失败回调接口消息 : " + arg0);
}

// 查询entity回调接口,返回查询结果列表
@Override
public void onQueryEntityListCallback(String arg0) {
System.out.println("entity回调接口消息 : " + arg0);
}
};

//查询实时轨迹
client.queryEntityList(serviceId, entityNames, columnKey, returnType, activeTime, pageSize, pageIndex, entityListener);

最新 3.1.0 版本中查询实体最终位置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
private void queryRealTimeLoc() {
//Entity监听器
OnEntityListener entityListener = new OnEntityListener() {
@Override
public void onEntityListCallback(EntityListResponse entityListResponse) {
Log.d("lallsdlalsdlasdlalsd", entityListResponse.getEntities().size() + " " +
entityListResponse.getEntities().get(0).getLatestLocation());
Point point = entityListResponse.getEntities().get(0).getLatestLocation(); //获取到的为Point需要手动转换成LatLng
LatLng currentLatLng = mapUtil.convertTrace2Map(point.getLocation());
mapUtil.updateStatus(currentLatLng, true);
}
};
//查询实时轨迹
//活跃时间,UNIX时间戳(指定该字段时,返回从该时间点之后仍有位置变动的entity的实时点集合)
int activeTime = (int) (System.currentTimeMillis() / 1000 - 12 * 60 * 60);
int pageSize = 1000;//分页大小
int pageIndex = 1;//分页索引
EntityListRequest request = new EntityListRequest();
request.setServiceId(trackApp.serviceId);
request.setPageIndex(pageIndex);
request.setPageSize(pageSize);
FilterCondition condition = new FilterCondition();
List entityNames = new ArrayList<String>(); //需要查询的entityName列表
entityNames.add("xxxxxxxx");
entityNames.add("xxxxxxxx");
condition.setEntityNames(entityNames);
condition.setActiveTime(activeTime); //还存在另一个方法 setInActiveTime,设置不活跃时间,在此时间之后无定位信息上传的entity(locTime < inActiveTime) 注:不能与activeTime同时使用
request.setFilterCondition(condition); //过滤条件
trackApp.mClient.queryEntityList(request, entityListener); //最新sdk中只接受这两个参数
}