searchentity

简介

实时查询entity最新位置、高度、速度、方向和相关属性信息。

提供两种查询方法:

① queryEntityList():该方法用于查询服务端上存储的最新实时数据。若终端处于断网状态,或有大量缓存数据未上传,则查询结果将是目前服务端接收到的最新数据,可能并不是终端真实的最新位置。

② queryRealtimeLoc():该方法用于单独发起一次即时定位,返回为当前终端所在位置,类似定位SDK的使用方法,与轨迹采集上传完全独立,互不关联。

坐标系的说明

输出参数坐标系均为百度经纬度坐标系(bd09ll)

查询服务端最新数据queryEntityList()

支持通过entity_name列表和可检索的属性字段两种条件查询:


① 通过entity_name查询

调用queryEntityList()接口时,在entityNames参数中指定查询的entity_name列表,则会返回这些entity最后更新的位置。

例如,查询entity_name=car1和car2的两个终端

 // 轨迹服务ID
long serviceId = 10000;
// entity标识列表
String entityNames = "car1,car2";
//返回结果的类型(0 : 返回全部结果,1 : 只返回entityName的列表)
int returnType = 0;
// 活跃时间
int activeTime = 0;
// 分页大小
int pageSize = 100;
// 分页索引
int pageIndex =1;
 
//查询entity
client.queryEntityList(serviceId, entityNames, columnKey, returnType, activeTime, pageSize, pageIndex, entityListener);


② 通过可检索的entity属性字段查询

使用web服务API的entity/addcolumn方法,可以自定义entity的属性字段,并设置为可精确搜索字段。之后调用queryEntityList()时,支持通过该自定义属性字段,进行精确筛选。

例如开发者创建了team和city两个可检索的自定义属性字段,需要查询team=2且city=beijing的entity,示例如下:

 // 轨迹服务ID
long serviceId = 10000;
// 属性名称
String columnKey = “team=2,city=beijing”;
//返回结果的类型(0 : 返回全部结果,1 : 只返回entityName的列表)
int returnType = 0;
// 活跃时间
int activeTime = 0;
// 分页大小
int pageSize = 100;
// 分页索引
int pageIndex =1;
 
//查询entity
client.queryEntityList(serviceId, entityNames, columnKey, returnType, activeTime, pageSize, pageIndex, entityListener);

注:关于数据的实时性的说明

从数据上传到鹰眼服务端,到通过查询接口查询到该数据,在联网正常的情况下延时在毫秒级别,可认为是无延时地同步。

在上传时,受打包周期的限制,会存在一个打包周期的延迟。若开发者对实时性要求较高,可以将打包周期设置成采集周期,但需考虑流量的消耗。

即时定位-queryRealtimeLoc()

调用queryRealtimeLoc()接口,若gps已定位,则SDK会返回已转换为百度经纬度的GPS坐标信息;若gps未定位,SDK会采集定位依据(wifi、基站)上传到定位服务器,并返回定位结果。