一种面向非实时快照位置数据的签到用户近似搜索方法与流程

文档序号:16131371发布日期:2018-12-01 00:21阅读:209来源:国知局

本发明涉及时空数据管理领域的时空数据查询技术和时空数据索引技术,尤其是涉及了一种面向非实时快照位置数据的签到用户近似搜索方法。

背景技术

随着智能手机用户的持续稳健增长,无线定位技术在日常生活中得到了更为广泛的使用。在大型机场、地铁站和购物中心等全球定位系统无法正常工作的场景中,基于wi-fi或蓝牙的无线定位技术作为关键的替代方案,能够采集到大量手机用户的位置信息。上述移动位置数据,可以帮助机场、地铁、购物中心等商业环境的运营人员知晓当前环境中移动用户的行为和状况,从而为移动用户提供更为智能和便利的服务。例如,对于购物中心里的特定店铺,获知此刻正在该店铺进行签到的用户并进行优惠信息的推送,可以实施更好的店内营销活动。因此,面向无线定位技术捕获的移动用户位置信息,对特定区域进行签到的用户进行查询搜索是一项十分重要的任务。

一类使用专属硬件设备对签到用户信息进行获取的技术,在机场等大型室内环境中存在明显缺陷:首先,专属硬件设备如计数器、ibeacon等,需要额外成本的投入;其次,该类方法在环境发生改变,如酒店大型礼堂一分为二时,需要大量的人力重新部署设备;其三,该类方法依赖的专属硬件,无法在缺少物理边界的区域如展会展台上进行部署。因此,使用覆盖广泛的无线定位技术所产生的位置数据进行签到用户的搜索成为一种更为实际和经济的选择。

时空数据查询是一种按照特定的时间和/或空间条件的查询语义需要,对目标的时空数据对象进行搜索或检索的技术。在空间条件上,典型查询包括空间范围查询和k最近邻查询等;在时间条件上,既可针对一定时间范围的数据对象进行检索,也可针对特定时刻或连续时刻的数据对象进行检索。传统的时空对象计数技术,可对一定空间范围以及时间范围内的数据对象进行统计,因此可用于获知在特定区域进行签到的移动用户的信息。然而,此类技术具有三个方面的局限性:首先,该类技术对移动用户均有较强的假设,需按照一定的线性规律进行移动,且移动空间中不能存在障碍物;其次,该类技术必须在具有一定精度、连续报告的位置数据上进行计算,在无线定位频度低的情况下不能有效工作;其三,该类技术主要面向于一定时间范围内的历史数据进行离线计算,不能在具有较高实时性的场景下进行在线运行,以快速返回结果。

在一般的无线定位场景中,考虑到整体数据的规模,仅能将一部分最新的位置数据维护在室内定位内存表中以便于高效计算。同时,考虑到手机用户的使用习惯和信号的传输问题,无线定位的周期通常较大。因此,维护在室内定位内存表中的最新位置数据也存在一定的非实时性,相较当前时刻已经过期。如何利用非实时性的快照位置数据,快速有效地搜索到当前出现在特定区域内部的签到移动用户,是一个具有挑战性的问题。



技术实现要素:

针对现有技术的不足,本发明的目的在于一种面向非实时快照位置数据的签到用户近似搜索方法。

如图1所示,本发明解决其技术问题采用的技术方案如下:

1)读入移动用户的非实时快照位置数据,建立室内分区空间索引;

所述的非实时快照位置数据是从维护在室内定位内存表中读入。

2)用户自定义通过图形界面输入查询区域,计算查询区域对应的保底区域和浮动区域;

3)以浮动区域作为空间范围查询的查询条件,在室内分区空间索引上快速搜索移动用户;

4)根据搜索到的移动用户的快照位置数据,构建不确定移动区域,判定移动用户为确定签到用户或可能签到用户,并放入对应集合中;

5)将确定签到用户集合和可能签到用户集合作为近似搜索结果返回给图形界面进行展示。

所述步骤1)具体是:

1.1)按照固定时间周期,从室内定位内存表中读取移动用户的非实时快照位置数据;

所述步骤1.1)的非实时快照位置数据,可以由室内部署的无线定位系统进行采集,如基于wi-fi的定位系统。作为优选,可选择由指纹定位算法或三边测距定位算法估算的、以二维几何坐标进行位置描述的带时间戳定位记录。移动用户的唯一标识,可以采用被观测移动设备的无线芯片mac地址进行表达。

由于定位系统对不同移动用户的采样周期不同,当前维护在定位内存表中的位置数据可能来自于几秒前甚至更久远。因此,用于计算查询的位置数据是非实时的。按照一定周期读入的数据可能已经过时,被定位的移动用户的位置可能已经发生了变化。

1.2)将读取的非实时快照位置数据组织到室内分区空间索引中。

所述步骤1)的非实时快照位置数据是来自于周期性采样的无线定位系统。无线定位系统维护存储的移动用户的位置信息作为非实时快照位置数据,相较于当前时刻可能已经过时,当前时刻的移动用户的定位位置可能已发生变化。

所述步骤1)中,室内分区空间索引采用树状结构进行数据组织,树状结构中的每一个叶子结点为一个室内分区,室内分区为由建筑物内部元素自然分隔的基本单元,每个父结点为包围子结点且大于子结点所在区域的室内区域。

具体是:根据室内拓扑结构,将整体的室内空间划分为多个由墙体自然分隔的室内分区。每个分区是通过外部边界进行连接的。每个室内分区具有一定的空间范围,可以组织到相应的空间索引中以便于进行快速查询检索。本发明的室内分区空间索引采用树状结构进行数据组织。作为优选,可选择r-tree进行建立,每个组织到索引中的室内分区,可采用其最小外包矩形进行几何形状的近似。

对于空间索引的每一个叶子结点,即一个室内分区,本发明维护一个桶,用于存放被该室内分区包含的快照位置数据的对应移动用户。

本发明对于快照位置数据的周期性读入独立于签到用户近似搜索的过程。作为优选,可采用独立线程或进程对快照位置数据进行读取并维护其空间索引结构。当独立线程或进程读入当前最新的快照位置数据后,应检查其是否仍然被索引中室内分区包含。若已经发生变化,则通过空间搜索查找到包含该位置的室内分区,并将该移动用户更新到对应的桶中。

每一个室内分区上维护一个桶,用于存放被该室内分区包含的快照位置数据的对应移动用户。

所述步骤2)具体是:

2.1)用户在图形界面的室内地图上预先指定一组查询区域,包括多个查询区域。

查询区域可以是由室内建筑物元素如墙体自然分隔的单元,例如房间或过道,也可以是具有任意几何形状的不规则范围。具体实施中,各个多个查询区域可具有不同的形状。

2.2)对于每个查询区域,计算其保底区域和浮动区域。

所述步骤2)中,所述的保底区域是查询区域向内收缩的一个子集部分,为在保底区域内的任何移动用户在固定时间内都不能到达查询区域边界的区域,也即查询区域内无法离开该查询区域;所述的浮动区域是查询区域向外扩散的一个超集部分,为在浮动区域外的任何移动用户在指定的时间内都不能到达查询区域边界的区域,也即查询区域外无法到达该查询区域。

具体是:获取当前处理位置数据的最旧时间戳toldest和预设定的室内移动用户的最大运动速度vmax,则理论上一个移动用户从toldest到当前时刻tc能够移动的最大室内距离可计算为dmax=vmax·(tc-toldest)。将保底区域runder和浮动区域rover都初始化为当前的查询区域r。获取指定查询区域r的每一条边s,从s上的外部边界出发进行扩展,查找在dmax距离范围内能够到达的所有室内部分rm。将每一个查找到的rm从保底区域中剪除,即保底区域runder=runder\rm;类似,将rm并入到浮动区域中,即浮动区域rover=rover∪rm。对每个查询区域进行上述计算操作,得到其相应的保底区域和浮动区域。

所述步骤3)具体是:

3.1)初始化两个集合,分别为保底区域相关用户集合和浮动区域相关用户集合;

3.1)从室内分区空间索引最顶部的结点出发作为当前结点,

3.2)以浮动区域作为空间范围查询的查询条件,对当前结点的所有子结点进行深度优先搜索,搜索和浮动区域相交重叠的室内分区对应的结点:

3.3)若搜索到的该结点为非叶结点,则判断该结点的每一个子结点对应室内区域的最小外包矩形是否和浮动区域相交重叠:若有子结点相交,则继续对和浮动区域相交重叠的该子结点作为当前结点,回到步骤3.2)进行深度优先搜索;若不相交,则不对子结点作处理;

若当前结点为叶子结点,则对于叶子结点上的室内分区所包含的每个移动用户,判断移动用户的非实时快照位置是否被浮动区域/保底区域的外边界所包含;若被保底区域的外边界所包含,则将移动用户放入保底区域相关用户集合中;若不被保底区域的外边界所包含但被浮动区域的外边界所包含,则将移动用户放入浮动区域相关用户集合中;若均不被保底区域和浮动区域的外边界所包含,则不对移动用户作处理。

所述步骤4)具体是:

4.1)将每一个保底区域相关用户集合中的移动用户,放入确定签到用户集合中;

本发明维护的用户集合sunder中的移动用户,其维护在室内定位内存表中的快照位置数据可能已经过时。但是,由于其最新位置被保底区域所包含,意味着其在当前时刻绝不可能离开对应的查询区域——该移动用户一定在查询区域内进行了一次签到。因此,sunder中的移动用户可以全部放入到确定签到用户集合中。

4.2)对于每一个浮动区域相关用户集合sover中的移动用户,构建不确定移动区域:获取移动用户最新的非实时快照位置,从非实时快照位置出发在最大速度vmax限制下能够移动的最大室内半径距离范围以内的室内区域作为不确定移动区域;

4.3)判断该不确定移动区域是否被查询区域所完全覆盖:

若完全覆盖,则移动用户在当前时刻必在查询区域内部,将移动用户放入到确定签到用户集合中;

否则,则不确定移动区域仅仅和查询区域部分相交覆盖,将移动用户放入到可能签到用户集合中。

具体是:对于每个移动用户oi,获取其在室内定位内存表中的最新位置数据(loci,ti),该位置数据表示用户最近的位置loci在ti时刻被记录。随后,计算从位置loci出发,该移动用户在最大速度vmax限制下能够移动的最大室内距离vmax·(tc-toldest)范围以内的室内部分。上述获取的室内部分即该移动用户oi的不确定移动区域。通过几何运算,计算不确定移动区域是否被完整地包含在查询区域内部。若被包含,则表示该移动用户在当前时刻一定在查询区域内部并进行了签到。

所述步骤5)具体是:将所述步骤4)中获取的确定签到用户集合和可能签到用户集合存入通用数据结构中,作为近似搜索结果返回给图形界面进行展示。

作为优选,返回的数据结构可以序列化为json文件,以方便计算过程和图形界面的数据交换。图形界面分别解析确定签到用户集合和可能签到用户集合,以能够明显区分的形式向用户进行可视展示。作为优选,可视展示可以选择带有色彩的列表进行分项排列。

本发明可有效地利用维护在室内定位内存表中的室内分区空间索引对当前时刻的非实时快照位置数据进行高效组织和管理,该过程可独立于签到用户的近似搜索过程之外执行。

本发明设计的保底区域和浮动区域,可针对用户自定义的任意形状查询区域进行计算判定,保底区域可用于快速括入确定在查询区域进行签到的用户,浮动区域可只聚焦一些有可能在查询区域进行签到的用户。利用保底区域和浮动区域进行空间范围查询,本发明可有效地从老旧的位置数据中找到所有可能在当前时刻进行区域签到的移动用户。

本发明的签到用户近似搜索方法,充分利用了室内环境中移动用户运动的约束条件,基于保底区域和浮动区域为查询条件的空间范围搜索,可快速将当前时刻在特定查询区域中签到的用户的近似结果返回并进行可视化展示。

本发明具有的有益效果是:

本发明根据无线定位系统产生的非实时快照位置数据进行自定义查询区域内签到用户的近似搜索,并提供高效实时的结果展示机制。

本发明方法在无线定位数据采样频率低、内存维护数据条件有限的场景下,搜索当前时刻可能在特定查询区域进行签到的用户时,能同时保证签到用户搜索过程的高效性和完整有效性。

附图说明

图1是本发明实施步骤流程图。

图2是室内分区索引示例图。

具体实施方式

现结合具体实施和示例对本发明的技术方案作进一步说明。

如图1,本发明具体实施例及其实施过程如下:

步骤1:读入移动用户的非实时快照位置数据,建立室内分区空间索引。

所述步骤1的非实时快照位置数据,可以由室内部署的无线定位系统进行采集。本实例中选择由wi-fi指纹定位算法或三边测距定位算法估算的、以二维几何坐标进行位置描述的带时间戳定位记录。

移动用户的唯一标识,可以采用被观测移动设备的无线芯片mac地址进行表达。本实例采用wi-fi芯片mac地址作为用户id标识。

由于定位系统对不同移动用户的采样周期不同,当前维护在定位内存表中的位置数据可能来自于几秒前甚至更久远。因此,本实例中用于计算查询的位置数据是非实时的。按照一定周期读入的快照位置数据可能已经过时,被定位的移动用户的位置可能已经发生了变化。

在快照位置数据读入后,本发明将其组织到室内分区空间索引中。

根据室内拓扑结构,本实例将整体的室内空间划分为多个由墙体自然分隔的室内分区。如图2所示,室内分区a-i是自然划分而得到的各个室内分区。每个分区是通过外部边界进行连接的。每个室内分区具有一定的空间范围,可以组织到相应的空间索引中以便于进行快速查询检索。

本发明的室内分区空间索引采用树状结构进行数据组织。本实例的室内分区空间索引选择r-tree进行建立,每个组织到索引中的室内分区,可采用其最小外包矩形进行几何形状的近似。如图2所示,从根结点出发,可以分成两个子结点,它们的最小外包矩形分别能够包含室内分区abcdef和ghi。而包含abcdef的结点,通过进一步分裂为最小外包矩形包括分区abcd和ef的两个子结点。通过不断分割,空间索引的叶子结点部分分别对应于一个固定的室内分区,例如图2中所示的室内分区b。

对于空间索引的每一个叶子结点,即一个室内分区,本实例维护一个桶,用于存放被该室内分区包含的快照位置数据的对应移动用户。例如,室内分区b对应的桶包含用户o1的快照位置。

本发明中,对于快照位置数据的周期性读入可以独立于签到对象近似搜索的过程。因此,本实例采用独立进程对快照位置数据进行读取并维护其空间索引结构。当独立进程读入当前最新的快照位置数据后,本实例检查其是否仍然被索引中室内分区包含。若已经发生变化,则通过空间搜索查找到包含该位置的室内分区,并将该移动用户更新到对应的桶中。例如,假设当前时刻的用户o1从室内分区b移动到室内分区a,则对室内分区a的桶进行增加o1,并从室内分区b的桶中删除o1。

步骤2:用户自定义通过图形界面输入查询区域,计算查询区域对应的保底区域和浮动区域。

在本实例中,每个指定的室内查询区域不具有特殊的几何形状约束。其既可以是由室内建筑物元素如墙体自然分隔的单元,如房间或过道,也可以是具有任意几何形状的不规则空间范围。例如,图2中所示的一个查询区域c是由用户指定的矩形区域。

步骤3:以浮动区域作为空间范围查询的查询条件,在室内分区空间索引上快速搜索移动用户。

对于每个指定的查询区域,对其保底区域和浮动区域进行计算。其中,保底区域是查询区域向内收缩的一个子集部分,表示在保底区域内的任何移动用户,在指定的时间内都不能到达查询区域的外部边界,也即无法离开该查询区域;浮动区域是查询区域向外扩散的一个超集部分,表示在浮动区域外的任何移动用户,在指定的时间内都不能到达查询区域的外部边界,也即无法到达该查询区域。只有在浮动区域中的移动用户才可能在当前时刻进入查询区域进行签到。

具体是,本实例获取当前处理位置数据的最旧时间戳toldest和预设定的室内移动用户的最大运动速度vmax,则理论上一个移动用户从toldest到当前时刻tc能够移动的最大室内距离可计算为dmax=vmax·(tc-toldest)。

本实例将将保底区域runder和浮动区域rover都初始化为当前的查询区域r。本实例获取指定查询区域r的每一条边s,从s上的外部边界出发进行扩展,查找在dmax距离范围内能够到达的室内部分rm。将每一个查找到的rm从保底区域中剪除,即保底区域runder=runder\rm;类似,将rm并入到浮动区域中,即浮动区域rover=rover∪rm。对每个指定的查询区域进行上述计算操作,可以得到其相应的保底区域和浮动区域。例如,图2中查询区域c的保底区域和浮动区域分别为cunder和cover,分别是向内收缩和向外扩张的空间部分。

随后,以浮动区域作为空间范围查询的查询条件,在室内分区空间索引上快速搜索移动用户。

具体是,本实例初始化两个集合,分别为保底区域相关用户集合sunder和浮动区域相关用户集合sover。本实例从室内分区空间索引的根结点出发,以浮动区域作为空间范围查询的查询条件,进行深度优先搜索:若当前结点为非叶结点,则判定其每一个子结点的最小外包矩形是否和浮动区域相交,若相交,则继续针对每个子结点进行深度优先搜索;若当前结点为叶子结点,则对于叶子结点上每个室内分区所包含的移动用户,判定其最新维护的位置是否被查询条件的浮动区域和保底区域所包含。若被包含,则分别将移动用户放入相应的保底区域相关用户集合sunder和浮动区域相关用户集合sover中。

例如,在图2中,根据查询区域c的浮动区域cover,在对应的室内分区空间索引上搜索和其相交的室内分区。从根结点出发,可以发现,左侧结点的最小外包矩形包含abcdef,和cover相交,则按照深度优先搜索的策略不断对相交的子结点进行搜索。相反,右侧结点的最小外包矩形包含ghi,和cover不相交,则该分支和包含的移动用户和查询区域c无关,可以排除。在根结点左侧的子结点往下搜索,可以发现,cover分别和室内分区(即叶子结点)abcdef都相交。通过分别对abcdef的包含的移动用户的快照位置进行检查,可以发现,移动用户o6被保底区域cunder包含,放入到保底区域相关用户集合sunder中,移动用户o2、o4仅被浮动区域cover包含,放入到浮动区域相关用户集合sover中。

步骤4:根据搜索到的移动用户的快照位置数据,构建不确定移动区域,判定移动用户为确定签到用户或可能签到用户,并放入对应集合中。

在本实例中,对于当前放入用户集合sunder中的移动用户,例如o6,其维护在室内定位内存表中的快照位置数据可能已经过时。但是,由于o6的最新位置被保底区域cunder包含,意味着其在当前时刻绝不可能离开对应的查询区域c——该对象一定在查询区域c内进行了一次签到。因此,本实例可以将sunder中的移动用户全部放入到确定签到用户集合中。

对于每一个浮动区域相关用户集合sover中的移动用户,例如o2、o4,为其构建不确定移动区域,判定不确定移动区域是否被查询区域覆盖:若被完全覆盖,则该移动用户在当前时刻必在查询区域内部,则将移动用户放入到确定签到用户集合中;否则,不确定移动区域仅仅和查询区域有部分相交,此时将移动用户放入到可能签到用户集合中。

具体是,对于每个移动用户oi,本实例获取其在室内定位内存表中的最新位置数据(loci,ti),该位置数据表示用户最近的位置loci在ti时刻被记录。

随后,本实例计算从位置loci出发,该移动用户在最大速度vmax限制下能够移动的最大室内距离vmax·(tc-toldest)范围以内的室内部分。上述获取的室内部分即该移动用户oi的不确定移动区域。通过几何运算,本实例通过几何运算,计算不确定移动区域是否被完整地包含在查询区域内部。若被包含,则表示该移动用户在当前时刻一定在查询区域内部并进行了签到。

例如,如图2所示,移动用户o4的不确定移动区域始终在查询区域c内部,则该移动用户应该放入确定签到用户集合中;而移动用户o2的不确定区域显然和查询区域c仅仅有部分相交,因此应该放入到可能签到用户集合中。

步骤5:将确定签到用户集合和可能签到用户集合作为近似搜索结果返回给图形界面进行展示。

具体是,本实例中将返回的数据结构序列化为json文件,以方便计算过程和图形界面的数据交换。图形界面分别解析确定签到用户集合和可能签到用户集合,以能够明显区分的形式向用户进行可视展示。本实例选择带有深绿色和浅绿色的列表分别对确定签到用户集合和可能签到用户集合进行排列展示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1