SDK 版本: 3.1.0
sdk文檔:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/searchtrack
查詢實時位置
查詢一或多個被追蹤者的實時位置。
//鷹眼服務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 版本中查詢實體最終位置:
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中只接受這兩個參數
}