定位数据处理方法、装置、计算机设备及存储介质与流程

文档序号:18703876发布日期:2019-09-17 23:21阅读:198来源:国知局
定位数据处理方法、装置、计算机设备及存储介质与流程

本发明涉及网络技术领域,特别涉及一种定位数据处理方法、装置、计算机设备及存储介质。



背景技术:

随着网络技术的发展,服务器可以基于终端的定位请求,向终端提供基于位置的服务(locationbasedservice,lbs),也即是向终端发送当前所在位置的定位数据。

目前,在一些单位区域内的人流密度太大的热点区域,极易发生踩踏事故。有鉴于此,服务器可以基于各个终端的定位数据,使用虚拟边界作为统计对象,来统计预定义的地理区域内的定位次数,从而反映出各个地理区域内的人流密度,对人流密度较大的热点区域进行预警,以降低踩踏事故的发生风险。其中,虚拟边界用于表示某一个实体所覆盖的地理区域,例如,该实体可以是某一个办公大厦、商场、景区等。

在上述过程中,服务器在判断定位数据位于哪一个虚拟边界内时,可以将每一个定位数据与预存的虚拟边界列表中的每一个虚拟边界都执行判断算法,从而判断每一个定位数据是否位于每一个虚拟边界内,也就相当于执行了一个遍历算法与判断算法相结合的计算过程。

然而,由于在上述遍历算法中会将每一个定位数据与每一个虚拟边界都执行上述判断算法,而遍历算法和判断算法本身的复杂度都很高,因此会带来庞大的计算量,使得服务器在对定位数据进行处理的过程中,算法复杂度高、产生的计算量大以及消耗时间长。



技术实现要素:

本发明实施例提供了一种定位数据处理方法、装置、计算机设备及存储介质,能够解决定位数据处理过程算法复杂度高、产生的计算量大、消耗时间长的问题。该技术方案如下:

一方面,提供了一种定位数据处理方法,该方法包括:

根据至少一个定位数据,从多个虚拟网格中获取与所述至少一个定位数据对应的至少一个虚拟网格,一个虚拟网格用于表示基于经纬线所确定的地理区域;

基于虚拟网格与虚拟边界的映射关系,将所述至少一个虚拟网格映射为至少一个虚拟边界,所述至少一个虚拟边界用于表示至少一个实体所覆盖的地理区域;

从所述至少一个虚拟边界中,确定所述至少一个定位数据所在的目标虚拟边界。

一方面,提供了一种定位数据处理装置,该装置包括:

获取模块,用于根据至少一个定位数据,从多个虚拟网格中获取与所述至少一个定位数据对应的至少一个虚拟网格,一个虚拟网格用于表示基于经纬线所确定的地理区域;

映射模块,用于基于虚拟网格与虚拟边界的映射关系,将所述至少一个虚拟网格映射为至少一个虚拟边界,所述至少一个虚拟边界用于表示至少一个实体所覆盖的地理区域;

确定模块,用于从所述至少一个虚拟边界中,确定所述至少一个定位数据所在的目标虚拟边界。

在一种可能实施方式中,所述确定模块包括:

第一获取单元,用于对所述至少一个虚拟边界中的每个虚拟边界,从所述至少一个定位数据中,获取映射至所述虚拟边界的虚拟网格所对应的部分定位数据;

生成单元,用于基于所述部分定位数据中一个或多个符合目标位置条件的定位数据,生成至少一个目标定位数据;

第一确定单元,用于当所述至少一个目标定位数据中有任一个目标定位数据位于所述虚拟边界内时,将所述虚拟边界确定为所述目标虚拟边界。

在一种可能实施方式中,所述生成单元用于:

在所述部分定位数据中,将经度值在小数点后的前第一目标数量个有效数字相同且纬度值在小数点后的前第二目标数量个有效数据相同的定位数据,聚合为一个目标定位数据。

在一种可能实施方式中,所述生成单元用于:

在所述部分定位数据中,将经度值与任一经度阈值之间差值小于第一目标阈值且纬度值与任一纬度阈值之间差值小于第二目标阈值的定位数据,聚合为一个目标定位数据。

在一种可能实施方式中,所述装置还包括:

对每个目标定位数据,当从所述目标定位数据出发的射线与所述虚拟边界的交点个数为奇数时,确定所述目标定位数据位于所述虚拟边界内。

在一种可能实施方式中,所述获取模块包括:

第二获取单元,用于对每个定位数据,根据所述定位数据的经度值和纬度值,获取所述定位数据在所述多个虚拟网格中的网格坐标;

第二确定单元,用于根据所述定位数据的网格坐标,从所述多个虚拟网格中确定与所述定位数据的网格坐标所对应的虚拟网格。

在一种可能实施方式中,所述第二确定单元用于:

确定所述定位数据的网格坐标在纬度轴上所在的最小纬度区间和在经度轴上所在的最小经度区间;

从所述多个虚拟网格中,获取所述最小纬度区间和所述最小经度区间所确定的虚拟网格。

在一种可能实施方式中,所述装置应用于分布式集群中,由多个第一节点设备执行获取所述获取模块和所述映射模块所执行的步骤;

对所述多个第一节点设备中的任一个第一节点设备,将映射至同一个虚拟边界的虚拟网格所对应的定位数据,发送至同一个第二节点设备;

对任一个第二节点设备,执行所述确定模块所执行的步骤。

一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条指令,该至少一条指令由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的定位数据处理方法所执行的操作。

一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该至少一条指令由处理器加载并执行以实现如上述任一种可能实现方式的定位数据处理方法所执行的操作。

本发明实施例提供的技术方案带来的有益效果至少包括:

通过至少一个定位数据,能够从多个虚拟网格中获取与该至少一个定位数据对应的至少一个虚拟网格,从而可以基于虚拟网格与虚拟边界的映射关系,将该至少一个虚拟网格映射为至少一个虚拟边界,再从该至少一个虚拟边界中,确定该至少一个定位数据所在的目标虚拟边界,由于本发明中的虚拟网格是根据经纬线来划分的,这种划分所得的规则形状能够简化粗筛时的计算量,因此基于这种虚拟网格进行粗筛时,能够从多个虚拟网格中快速找到定位数据对应的虚拟网格,再将虚拟网格映射至虚拟边界,从而仅需要对映射到的虚拟边界进行精筛,避免了将每个定位数据与所有的虚拟边界进行一一判断的精筛,大大降低了定位数据处理时采用算法的复杂度,降低了定位数据处理时的计算量,减少了定位数据处理所需的时长。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种定位数据处理方法的实施环境示意图;

图2是本发明实施例提供的一种定位数据处理方法的交互流程图;

图3是本发明实施例提供的一种目标实体区域的虚拟边界的示意图;

图4是本发明实施例提供的一种多个虚拟网格的示意图;

图5是本发明实施例提供的一种定位数据处理方法的原理性示意图;

图6是本发明实施例提供的一种人流密度分析图的示意图;

图7是本发明实施例提供的一种定位数据处理装置的结构示意图;

图8是本发明实施例提供的计算机设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在介绍详细的实施方式之前,需要对本发明实施例中所涉及到的相关名词进行解释。

虚拟网格:一个虚拟网格用于表示基于经纬线所确定的地理区域,由于经纬线之间是互相垂直的关系,因此基于经纬线划分出的虚拟网格为规则的矩形。网格大小可以根据虚拟边界的面积进行调整,本发明实施例不对经纬线的划分精度进行具体限定。

虚拟边界:俗称为“地理围栏”,一个虚拟边界用于表示一个实体所覆盖的地理区域,虚拟边界的形状与实体所覆盖的地理区域形状一致。

实体:现实世界中的真实对象,例如,该实体可以是一个办公大厦、一个景区、一个商场等。

图1是本发明实施例提供的一种定位数据处理方法的实施环境示意图。参见图1,在该实施环境中,可以包括第一服务器101和第二服务器102,下面进行详述:

其中,该第一服务器101可以是任一能够提供定位数据处理的计算机设备,在本发明实施例中,以第一服务器101用于获取各个定位数据备选的至少一个虚拟边界为例进行说明。

可选地,该第一服务器101可以是单机设备,避免了频繁的数据传输请求,也可以是集群设备,能够提升整体定位数据处理的效率、缩短定位数据处理的耗时,本发明实施例不对第一服务器101的设备类型进行具体限定,例如,当该第一服务器101为分布式集群设备时,在该分布式集群设备中可以包括多个第一节点设备。

其中,该第二服务器102也可以是任一能够提供定位数据处理的计算机设备,在本发明实施例中,以第二服务器102用于确定各个定位数据所在地理区域对应的目标虚拟边界为例进行说明。当然,该第二服务器102也可以是单机设备或集群设备,这里不做赘述。

在一些实施例中,当该第二服务器102为分布式集群设备时,在该分布式集群设备中可以包括多个第二节点设备,每个第二节点设备都可以对应于一个或多个虚拟边界,使得每个第二节点设备可以用于确定接收到的定位数据是否位于该一个或多个虚拟边界中任一虚拟边界内,从而不仅可以减少在统计虚拟边界内定位次数过程中的计算量,而且还能够保证各个第二节点设备之间的计数一致性。

在一些实施例中,第一服务器101上各个定位数据的来源可以是第三服务器,具体过程如下:各个终端可以向第三服务器发送定位请求,其中,第三服务器用于为终端提供lbs服务,第三服务器根据各个终端的定位请求生成定位数据,在第三服务器向各个终端发送对应的定位数据之后,第三服务器还可以每间隔第一目标时长,将距离当前时刻之前第一目标时长内生成的各个定位数据发送至上述第一服务器101。

当第一服务器101接收到各个定位数据后,该第一服务器101通过多个第一节点设备对各个定位数据进行处理,得到各个定位数据对应的至少一个虚拟边界,第一服务器101的各个第一节点设备可以按照虚拟边界的不同,将定位数据发送至第二服务器102中不同的第二节点设备,由每个第二节点设备确定接收到的定位数据是否位于一个或多个虚拟边界内。

需要说明的是,第一服务器101、第二服务器102或者第三服务器中的任一个或者至少两个,均可以是同一个实体设备,也可以是不同的实体设备,本发明实施例不对此进行具体限定。

基于上述实施环境,下面对本发明实施例进行详述,图2是本发明实施例提供的一种定位数据处理方法的交互流程图。参见图2,该实施例包括:

201、第一服务器获取至少一个定位数据。

其中,该第一服务器可以是任一能够进行定位数据处理的计算机设备,第一服务器可以是单机设备,也可以是集群设备。以第一服务器为分布式集群设备为例进行说明,该分布式集群设备中可以包括多个第一节点设备,该多个第一节点设备可以散布在不同的地理区域内,也可以位于相同的地理区域内。

其中,该定位数据用于表示终端发送定位请求时所在的位置,在该定位数据中可以包括经度值和纬度值。

在上述过程中,第一服务器可以从第三服务器处获取该至少一个定位数据,该第三服务器可以是任一能够提供lbs服务的计算机设备。在一些实施例中,终端可以向第一服务器发送定位请求,由第三服务器生成定位数据,将定位数据发送至终端后,第三服务器还可以每间隔第一目标时长,向第一服务器发送距离当前时刻之前第一目标时长内生成的至少一个定位数据,由第一服务器接收第三服务器发送的该至少一个定位数据。其中,该第一目标时长可以是任一大于或等于0的数值。

在一些实施例中,第三服务器可以将该至少一个定位数据发送至第一服务器的代理设备,由代理设备将该至少一个定位数据随机分发至多个第一节点设备,可选地,代理设备可以将每个定位数据随机地发送至任一第一节点设备,从而能够尽量使得各个第一节点设备上待处理的定位数据量较为均匀,优化整个分布式集群的处理效率。当然,第三服务器还可以直接将该至少一个定位数据分别发送至该多个第一节点设备,简化了数据传输的流程。

在一些实施例中,该第一服务器可以和第三服务器是相同的实体设备,从而由第一服务器根据终端的定位请求生成定位数据,从而无需从别的设备处接收定位数据,简化了数据传输的流程,这里不做赘述。

202、第一服务器获取多个虚拟网格以及虚拟网格与虚拟边界的映射关系。

其中,该多个虚拟网格可以是预存在第一服务器的各个第一节点设备上的,例如,该多个虚拟网格可以是对目标区域进行划分所得的,可选地,该目标区域可以是第三服务器能够提供lbs服务的所有区域,例如,该目标区域为中国所占的地理区域。

在上述步骤202中,当第一服务器获取该多个虚拟网格时,可以根据目标区域的真实边界,通过多条经线和多条纬线对该目标区域的真实边界进行网格分割,按照比例尺缩放后得到该多个虚拟网格,从而可以将该多个虚拟网格投入到下述步骤203中进行调用。其中,该比例尺可以是任一大于或等于0的数值。

在获取该多个虚拟网格之后,第一服务器可以根据该多个虚拟网格,获取虚拟网格与虚拟边界的映射关系,具体可以执行下述步骤:第一服务器获取至少一个实体所覆盖的地理区域(以下均简称为“目标实体区域”),根据该至少一个目标实体区域,按照上述比例尺对该至少一个目标实体区域的真实边界进行缩放,得到该至少一个目标实体区域的虚拟边界,根据该多个虚拟网格和该至少一个目标实体区域的虚拟边界,生成虚拟网格与虚拟边界的映射关系,从而可以将该映射关系投入到下述步骤204中进行调用。

具体地,在生成映射关系时,对每个目标实体区域的虚拟边界,第一服务器可以从该多个虚拟网格中,确定出与该目标实体区域的虚拟边界相重叠的一个或多个虚拟网格,对该一个或多个虚拟网格与该虚拟边界建立映射关系,其中,该虚拟边界与虚拟网格之间相重叠可以是完全重叠,也可以是部分重叠,只要该虚拟边界与虚拟网格之间有重叠的部分,则可以认为两者相重叠。

在一些实施例中,上述虚拟网格与虚拟边界的映射关系,可以是一对一的映射关系,也即是一个虚拟网格能够映射至唯一的虚拟边界,可以是一对多的映射关系,也即是一个虚拟网格能够映射至多个虚拟边界,还可以是多对一的映射关系,也即是多个虚拟网格能够映射至同一个虚拟边界,本发明实施例不对该映射关系的类型进行具体限定。

需要说明的是,可以由第一服务器中任一第一节点设备执行生成该多个虚拟网格以及该映射关系的操作之后,将上述多个虚拟网格以及映射关系同步至其他的第一节点设备,实现各个第一节点设备之间的数据同步。当然,每个第一节点设备均可以执行上述操作,也即是由各个第一节点设备自行生成多个虚拟网格以及该映射关系,本发明实施例不对第一节点设备获取多个虚拟网格以及映射关系的方式进行具体限定。

在一些实施例中,由于在实时统计的过程中,目标实体区域可能会发生变化,因此第一服务器可以每间隔第二目标时长获取发生变化(例如新增、修改或者删除)的目标实体区域,基于该发生变化的目标实体区域,对虚拟网格与虚拟边界的映射关系进行更新,基于更新后的映射关系进行定位数据处理。当然,在分布式集群中,当任一第一节点设备更新了映射关系之后,可以快速地将更新后的映射关系同步至其他的第一节点设备,这里不做赘述。其中,该第二目标时长可以是任一大于或等于0的数值。

在上述过程中,第一服务器通过获取多个虚拟网格和虚拟网格与虚拟边界的映射关系,能够将该多个虚拟网格以及该映射关系预存在本地,从而方便了后续每次实时统计时的调用,降低了每次实时统计过程的耗时。

在一些实施例中,第一服务器还可以先获取多个虚拟网格以及虚拟网格与虚拟边界的映射关系,再获取至少一个定位数据,也即是在本发明实施例中不对上述步骤202与上述步骤201的执行时序进行具体限定。

图3是本发明实施例提供的一种目标实体区域的虚拟边界的示意图,参见图3,任一目标实体区域的虚拟边界可以是地理围栏的形式,在图3中该地理围栏呈现出四边形的形状,当然,根据目标实体区域的不同,该地理围栏还可以呈圆形、多边形或者不规则形状,本发明实施例不对地理围栏的形状进行具体限定。相应地,在上述情况下,该虚拟网格与虚拟边界的映射关系可以表示为虚拟网格→地理围栏的索引关系。

图4是本发明实施例提供的一种多个虚拟网格的示意图,如图4所示,以目标区域为中国所占的地理区域为例进行说明,第一服务器按照多条经线和多条纬线将该目标区域分割为500*500个虚拟网格,每个虚拟网格的面积可以为10km*10km,需要说明的是,在图4中为了更加直观地显示虚拟网格与地理围栏之间的关系,对显示的经线和纬线数目进行了适应性地缩减,并且对单个地理围栏的大小进行了适应性地放大,并不应构成对经纬线数目或者地理围栏大小的限定。

203、第一服务器根据至少一个定位数据,从多个虚拟网格中获取与该至少一个定位数据对应的至少一个虚拟网格,一个虚拟网格用于表示基于经纬线所确定的地理区域。

在上述过程中,第一服务器可以将该至少一个定位数据随机分发至多个第一节点设备,对每个第一节点设备,获取该第一节点设备接收到的定位数据所对应的虚拟网格,从而能够通过分布式的集群部署,由多个第一节点设备同时处理定位数据,提升了定位数据的处理效率。

可选地,对任一第一节点设备而言,在处理每个定位数据时,该第一节点设备均可以执行下述步骤2031-2032所执行的操作:

2031、对每个定位数据,第一节点设备根据该定位数据的经度值和纬度值,获取该定位数据在多个虚拟网格中的网格坐标。

在上述过程中,第一节点设备可以获取定位数据的纬度值相对于坐标原点在纬度轴上的纬度偏移量,获取定位数据的经度值相对于坐标原点在经度轴上的经度偏移量,将上述纬度偏移量作为该网格坐标中的纬度轴坐标值,将上述经度偏移量作为该网格坐标中的经度轴坐标值。

2032、第一节点设备根据该定位数据的网格坐标,从该多个虚拟网格中确定与该定位数据的网格坐标所对应的虚拟网格。

在上述过程中,第一节点设备可以确定该定位数据的网格坐标在纬度轴上所在的最小纬度区间和在经度轴上所在的最小经度区间;从该多个虚拟网格中,获取该最小纬度区间和该最小经度区间所确定的虚拟网格。在上述情况下,当各个虚拟网格为大小相等的正方形时,最小纬度区间和最小经度区间的区间长度则等于正方形虚拟网格的边长。

通过上述方式,第一节点设备能够根据定位数据的网格坐标分别在纬度轴和经度轴上落入的区间,确定出该定位数据的网格坐标所落入的虚拟网格,从而能够从海量的虚拟网格中粗筛出各个定位数据对应的虚拟网格。

在上述步骤2031-2032中,第一节点设备对每个定位数据,都能够将经度值和纬度值转换为定位数据的网格坐标,从而根据定位数据在多个虚拟网格中网格坐标来进行虚拟网格的筛选,统一了定位数据与虚拟网格的对比维度。

204、第一服务器基于虚拟网格与虚拟边界的映射关系,将该至少一个虚拟网格映射为至少一个虚拟边界,该至少一个虚拟边界用于表示至少一个实体所覆盖的地理区域。

其中,该映射关系可以是上述步骤202中获取的,该实体可以是某一个办公大厦、商场、景区等。

当第一服务器内包括多个第一节点设备时,对于每个第一节点设备而言,该第一节点设备都可以基于该虚拟网格与虚拟边界的映射关系,将该第一节点设备接收到的定位数据所对应的虚拟网格映射为虚拟边界,对接收到的每个定位数据都重复执行上述步骤,从而得到至少一个虚拟边界。

在上述过程中,第一节点设备相当于根据虚拟网格与虚拟边界的映射关系,从海量的虚拟边界中,将定位数据可能位于的至少一个虚拟边界筛选出来了,由于在相关技术中需要将每个定位数据与每个虚拟边界进行遍历和判断,而遍历所采用的算法复杂度通常为o(n),而本发明实施例中基于虚拟网格的索引算法的复杂度通常为o(1),从而能够大大降低确定目标虚拟边界的过程中采用算法的复杂度,也就缩短了确定过程的耗时,提升了确定过程的速度。

205、第一服务器将该至少一个定位数据发送至第二服务器。

其中,该第二服务器可以是任一能够进行定位数据处理的计算机设备,第二服务器可以是单机设备,也可以是集群设备。以第二服务器为分布式集群设备为例进行说明,该分布式集群设备中可以包括多个第二节点设备,该多个第二节点设备可以散布在不同的地理区域内,也可以位于相同的地理区域内。

在上述步骤205中,对第一服务器的每个第一节点设备而言,该第一节点设备可以将映射至同一个虚拟边界的虚拟网格所对应的定位数据,发送至同一个第二节点设备。

在上述过程中,每个第一节点设备中可以存储有虚拟边界与第二节点设备的映射关系,从而第一节点设备可以基于该虚拟边界与第二节点设备的映射关系,通过与每个定位数据对应的至少一个虚拟边界的id(identification,标识),可以映射至第二节点设备的ip地址(internetprotocoladdress,网际协议地址),从而将该定位数据发送至该ip地址,不仅可以减少在统计虚拟边界内定位次数过程中的计算量,而且还能够保证各个第二节点设备之间的计数一致性。

需要说明的是,当一个定位数据对应于多个虚拟边界,且该多个虚拟边界对应于多个第二节点设备时,第一节点设备则将该定位数据发送至该多个第二节点设备。

在上述过程中,每个第二节点设备可以对应于一个或多个虚拟网格,也即是每个第二节点设备对应于该一个或多个虚拟网格映射至的一个或多个虚拟边界,因此可能对应于不同虚拟边界的定位数据会被发送至同一个第二节点设备,从而由该第二节点设备对粗筛后可能落在该一个或多个虚拟边界内的定位数据进行精筛,确定出每个定位数据是否在于上述一个或多个虚拟边界中任一虚拟边界内。

206、第二服务器从该至少一个虚拟边界中,确定该至少一个定位数据所在的目标虚拟边界。

在一些实施例中,对第二服务器中任一第二节点设备而言,可以从该第二节点设备所对应的虚拟边界中,确定该第二节点设备接收到的定位数据所在的目标虚拟边界。

具体地,在确定目标虚拟边界的过程中,每个第二节点设备均可以执行下述步骤2061-2063所执行的操作:

2061、对该至少一个虚拟边界中的每个虚拟边界,第二节点设备从该至少一个定位数据中,获取映射至该虚拟边界的虚拟网格所对应的部分定位数据。

其中,该部分定位数据为至少一个定位数据中与映射至该第二节点设备对应的任一虚拟边界的所有定位数据。

由于第一服务器中各个第一节点设备在上述步骤205中是按照虚拟边界来发送定位数据的,第二节点设备对应于一个或多个虚拟边界,因此在第二节点设备上能够获得到映射至该一个或多个虚拟边界中任一虚拟边界的部分定位数据。

例如,假设各个第一节点设备获取与m个定位数据对应的k个虚拟网格,这k个虚拟网格与n个虚拟边界之间具有映射关系。在上述假设中,如果虚拟网格x能够映射至虚拟边界i~i+9,虚拟网格y能够映射至虚拟边界i+10~i+19,某个第二节点设备与虚拟边界i~i+19(共计20个虚拟边界)相对应,那么各个第一节点设备会将映射至虚拟网格x或虚拟网络y的定位数据发送至上述第二节点设备。对虚拟边界i来说,第二节点设备会从接收到的定位数据中,将映射至虚拟网格x的定位数据确定为虚拟边界i的部分定位数据,当然,对虚拟边界i+10来说,第二节点设备则会从接收到的定位数据中,将映射至虚拟网格y的定位数据确定为虚拟边界i+10的部分定位数据。需要说明的是,由于均对应于虚拟网格x,因此虚拟边界i~i+9中各个虚拟边界的部分定位数据是相同的,相应地,由于均对应于虚拟网格y,因此虚拟边界i+10~i+19中各个虚拟边界的部分定位数据也是相同的。

其中,m、n或k为任一大于或等于1的整数,i为任一大于或等于1且小于或等于n的整数,x或y为任一大于或等于1且小于或等于k的整数。

2062、第二节点设备基于该部分定位数据中一个或多个符合目标位置条件的定位数据,生成至少一个目标定位数据。

在上述获取目标定位数据的过程中,第二节点设备可以将一些符合目标位置条件的定位数据,聚合成至少一个目标定位数据,也即是说能够将一些位置靠近的定位数据视为同一个目标定位数据,只对目标定位数据进行精筛,从而能够进一步地降低待精筛的定位数据量,加快定位数据处理的速度和效率。

在一些实施例中,第二节点设备可以通过下述方式获取目标定位数据:在该部分定位数据中,将经度值在小数点后的前第一目标数量个有效数字相同且纬度值在小数点后的前第二目标数量个有效数字相同的定位数据,聚合为一个目标定位数据。

可选地,该目标定位数据的经度值和纬度值可以分别为各个定位数据的平均经度值和平均纬度值。其中,该第一目标数量或第二目标数量为任一大于或等于1的数值,该第一目标数量和该第二目标数量可以相同,也可以不同。

通过上述方式,各个第二节点设备能够对海量的部分定位数据按照小数点后的有效数字进行聚合,从而将经纬度偏差值较小的不同定位数据聚拢为同一个目标定位数据,压缩了待精筛的定位数据量,降低了确定目标虚拟边界的过程中算法的复杂度,降低了上述过程所消耗的时长。

在一些实施例中,第二节点设备还可以通过下述方式获取目标定位数据:获取多个经度阈值和多个纬度阈值,在该部分定位数据中,将经度值与任一经度阈值之间差值小于第一目标阈值且纬度值与任一纬度阈值之间差值小于第二目标阈值的定位数据,聚合为一个目标定位数据。

可选地,经度阈值和纬度阈值可以是任一大于0的数值。可选地,该第一目标阈值可以为相邻的经度阈值之间差值的二分之一,该第二目标阈值可以为相邻的纬度阈值之间差值的二分之一。

通过上述方式,各个第二节点设备能够对海量的部分定位数据按照与固定阈值(例如经度阈值、纬度阈值)之间的差值进行聚合,从而将与固定阈值之间差值较小的定位数据聚拢为同一个目标定位数据,压缩了待精筛的定位数据的数量,降低了确定目标虚拟边界过程中的算法复杂度,降低了上述过程所消耗的时长。

2063、当该至少一个目标定位数据中有任一个目标定位数据位于该虚拟边界内时,第二节点设备将该虚拟边界确定为目标虚拟边界。

可选地,第二节点设备在确定目标定位数据是否位于虚拟边界内时,对每个目标定位数据,当从该目标定位数据出发的射线与该虚拟边界的交点个数为奇数时,确定该目标定位数据位于该虚拟边界内。

在上述过程中,第二节点设备基于射线法来判断各个目标定位数据是否位于各个虚拟边界内,第二节点设备对每个目标定位数据重复执行上述步骤2063,从而能够从至少一个目标定位数据中,筛选出位于该虚拟边界内的目标定位数据。

在上述过程中,第二节点设备能够确定出每个目标定位数据的目标虚拟边界,而由于每个目标定位数据对应于一个或多个符合目标位置条件的定位数据,那么上述一个或多个符合目标位置条件的定位数据所在的目标虚拟边界,与该目标定位数据所在的目标虚拟边界是同一个虚拟边界,从而减少了确定目标虚拟边界过程中的计算次数和计算量。

基于上述示例,如果某一个用户在10秒内且在同一个位置上连续定位了10次,生成了10个定位数据,分别为定位数据q~q+9,假设定位数据q~q+9为虚拟边界i的部分定位数据,那么在对虚拟边界i进行精筛时,由于定位数据q~q+9符合目标位置条件,因此会将定位数据q~q+9聚合为一个目标定位数据,如果这个目标定位数据确定位于虚拟边界i内,也即是说上述目标定位数据的目标虚拟边界为虚拟边界i,那么可以将定位数据q~q+9的目标虚拟边界均确定为虚拟边界i。其中,q为大于或等于1且小于或等于m的任一整数。

进一步地,对于每个虚拟边界,第二节点设备重复执行上述步骤2061-2063,从而能够实现精确筛选,当得到每个目标定位数据所在的目标虚拟边界之后,能够以虚拟边界为单位,统计出每个虚拟边界内的目标定位数据。

在上述步骤2061-2063中,第二节点设备先对定位数据进行聚合,从而能够将某一个位置点周围重复多次定位的各个定位数据视为同一个目标定位数据,也就压缩了后续待精筛的数据量,降低了各个第二节点设备上的负载计算量,保证了第二节点设备在分布式集群中达到负载均衡,避免了由于负载不均衡所造成的数据倾斜问题。

进一步地,在相关技术中由于没有对定位数据进行聚合,导致判断定位数据是否位于虚拟边界的逻辑与两个因素具有相关性,这两个因素分别为虚拟边界所围成的面积以及每一个位置点上发起的定位次数,因此判断逻辑较为复杂,判断算法的复杂度通常为o(m),而本发明实施例提供的方法,通过对定位数据的聚合,对同一个位置点上的多个定位数据仅需要进行一次判断,也就消除了每一个位置点上发起的定位次数对判断逻辑造成的影响,从而将判断逻辑简化为仅与虚拟边界所围成的面积这一个因素相关,大大简化了判断逻辑,在这种情况下判断算法的复杂度可以表示为o(m’),其中m>m’>0,也即是大大降低了判断算法的复杂度。

在本发明实施例中,以定位数据处理方法应用于分布式集群为例进行说明,由多个第一节点设备执行获取该至少一个虚拟网格,将该至少一个虚拟网格映射为至少一个虚拟边界的步骤,对该多个第一节点设备中的任一个第一节点设备,将映射至同一个虚拟边界的虚拟网格所对应的定位数据,发送至同一个第二节点设备,对任一个第二节点设备,执行确定目标虚拟边界的步骤,从而通过分布式集群的部署,分担了各个第一节点设备和第二节点设备的数据负载,能够提升整体定位数据处理的速度,缩短整体定位数据处理的耗时。

图5是本发明实施例提供的一种定位数据处理方法的原理性示意图,参见

图5,例如,第一服务器中多个第一节点设备可以获取定位数据1~定位数据n,并且每秒钟更新本次待统计的地理围栏1~地理围栏n,粗筛出定位数据1~定位数据n各自对应的虚拟网格,基于虚拟网格→地理围栏的索引关系,映射至各自对应的地理围栏,各个第一节点设备按照地理围栏的不同,将各个定位数据发送至第二服务器的不同第二节点设备,由各个第二节点设备分别对接收到的定位数据判断是否在某一地理围栏中,从而能够判断出各个定位数据的真实位置所对应的各个目标地理围栏。

换言之,从每个地理围栏的角度来看,第二服务器能够统计出每个目标地理围栏对应的真实边界内产生了多少个定位数据,从而能够通过统计结果,实时地反映出各个目标地理围栏内的人流密度。需要说明的是,在图5中虽然示出了两个第一节点设备和两个第二节点设备,但不应构成对第一节点设备和第二节点设备的数量的具体限定。

在一些实施例中,第二服务器在对所有的定位数据都执行了判断逻辑之后,能够得到确定位于每个虚拟边界内的定位数据,基于这些统计结果,第二服务器可以生成任一地理区域内的人流密度分析图,在人流密度分析图中,可以用不同的颜色来表示不同的人流密度区间。

图6是本发明实施例提供的一种人流密度分析图的示意图,如图6所示,例如,在人流密度分析图中,填充越密集的部分代表人流密度越大,填充越稀疏的部分代表人流密度越小,在图中还可以以条带的方式显示在该地理区域内的实时人数估算值。

示意性地,在一些场景中,第二服务器生成该人流密度分析图之后,还可以将该人流密度分析图发送至终端,使得用户能够基于终端浏览该人流密度分析图,可选地,当用户进入人脸密度大于密度阈值的区域时,第二服务器还可以向终端发送提示信息,该提示信息用于提示用户在当前区域内请注意安全、避免发生踩踏事件,从而能够大大降低踩踏事件的发生频率,有效地保护用户的人身安全。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

本发明实施例提供的方法,通过至少一个定位数据,能够从多个虚拟网格中获取与该至少一个定位数据对应的至少一个虚拟网格,从而可以基于虚拟网格与虚拟边界的映射关系,将该至少一个虚拟网格映射为至少一个虚拟边界,再从该至少一个虚拟边界中,确定该至少一个定位数据所在的目标虚拟边界,由于本发明中的虚拟网格是根据经纬线来划分的,这种划分所得的规则形状能够简化粗筛时的计算量,因此基于这种虚拟网格进行粗筛时,能够从多个虚拟网格中快速找到定位数据对应的虚拟网格,再将虚拟网格映射至虚拟边界,从而仅需要对映射到的虚拟边界进行精筛,避免了将每个定位数据与所有的虚拟边界进行一一判断的精筛,大大降低了定位数据处理时采用算法的复杂度,降低了定位数据处理时的计算量,减少了定位数据处理所需的时长。

进一步地,基于上述步骤204和上述步骤206中的描述,可以看出,在相关技术中,定位数据处理时的算法复杂度可以用o(n)+o(m)来表示,而在本发明实施例中,定位数据处理时的算法复杂度可以用o(1)+o(m’)来表示,由于m>m’>0,并且n≥1,因此本发明实施例中的定位数据处理方法能够大大降低定位数据处理过程的算法复杂度。

进一步地,相较于基于r树(r-tree)结构进行索引的方案而言,算法的复杂度可以用o(logn)+o(m)表示,也即是r树结构能够将定位数据索引至虚拟边界时的算法复杂度从o(n)降至o(logn),而本发明实施例中,定位数据处理时的算法复杂度o(1)+o(m’)仍然远小于o(logn)+o(m),因此,本发明实施例的定位数据处理方法能够大大降低定位数据处理时的算法复杂度。

在一种测试场景中,相较于上述r树结构的方案,在均值100万的qps(querypersecond,每秒查询率)的海量定位数据的统计情况下,原本每分钟才能输出一次定位数据与地理围栏之间的统计结果,在应用本发明实施例的定位数据处理方法之后,可以每秒钟输出一次定位数据与地理围栏之间的统计结果,也即是将统计结果的输出耗时从之前的分钟级别降到了秒级别,大大提升了数据处理所需的时长。

图7是本发明实施例提供的一种定位数据处理装置的结构示意图,参见图7,该装置可以包括获取模块701,映射模块702以及确定模块703,下面进行详述:

获取模块701,用于根据至少一个定位数据,从多个虚拟网格中获取与该至少一个定位数据对应的至少一个虚拟网格,一个虚拟网格用于表示基于经纬线所确定的地理区域。

映射模块702,用于基于虚拟网格与虚拟边界的映射关系,将该至少一个虚拟网格映射为至少一个虚拟边界,该至少一个虚拟边界用于表示至少一个实体所覆盖的地理区域。

确定模块703,用于从该至少一个虚拟边界中,确定该至少一个定位数据所在的目标虚拟边界。

本发明实施例提供的装置,通过至少一个定位数据,能够从多个虚拟网格中获取与该至少一个定位数据对应的至少一个虚拟网格,从而可以基于虚拟网格与虚拟边界的映射关系,将该至少一个虚拟网格映射为至少一个虚拟边界,再从该至少一个虚拟边界中,确定该至少一个定位数据所在的目标虚拟边界,由于本发明中的虚拟网格是根据经纬线来划分的,这种划分所得的规则形状能够简化粗筛时的计算量,因此基于这种虚拟网格进行粗筛时,能够从多个虚拟网格中快速找到定位数据对应的虚拟网格,再将虚拟网格映射至虚拟边界,从而仅需要对映射到的虚拟边界进行精筛,避免了将每个定位数据与所有的虚拟边界进行一一判断的精筛,大大降低了定位数据处理时采用算法的复杂度,降低了定位数据处理时的计算量,减少了定位数据处理所需的时长。

在一种可能实施方式中,基于图7的装置组成,该确定模块703包括:

第一获取单元,用于对该至少一个虚拟边界中的每个虚拟边界,从该至少一个定位数据中,获取映射至该虚拟边界的虚拟网格所对应的部分定位数据;

生成单元,用于基于该部分定位数据中一个或多个符合目标位置条件的定位数据,生成至少一个目标定位数据;

第一确定单元,用于当该至少一个目标定位数据中有任一个目标定位数据位于该虚拟边界内时,将该虚拟边界确定为该目标虚拟边界。

在一种可能实施方式中,该生成单元用于:

在该部分定位数据中,将经度值在小数点后的前第一目标数量个有效数字相同且纬度值在小数点后的前第二目标数量个有效数据相同的定位数据,聚合为一个目标定位数据。

在一种可能实施方式中,该生成单元用于:

在该部分定位数据中,将经度值与任一经度阈值之间差值小于第一目标阈值且纬度值与任一纬度阈值之间差值小于第二目标阈值的定位数据,聚合为一个目标定位数据。

在一种可能实施方式中,基于图7的装置组成,该装置还包括:

对每个目标定位数据,当从该目标定位数据出发的射线与该虚拟边界的交点个数为奇数时,确定该目标定位数据位于该虚拟边界内。

在一种可能实施方式中,基于图7的装置组成,该获取模块701包括:

第二获取单元,用于对每个定位数据,根据该定位数据的经度值和纬度值,获取该定位数据在该多个虚拟网格中的网格坐标;

第二确定单元,用于根据该定位数据的网格坐标,从该多个虚拟网格中确定与该定位数据的网格坐标所对应的虚拟网格。

在一种可能实施方式中,该第二确定单元用于:

确定该定位数据的网格坐标在纬度轴上所在的最小纬度区间和在经度轴上所在的最小经度区间;

从该多个虚拟网格中,获取该最小纬度区间和该最小经度区间所确定的虚拟网格。

在一种可能实施方式中,该装置应用于分布式集群中,由多个第一节点设备执行获取该获取模块和该映射模块所执行的步骤;

对该多个第一节点设备中的任一个第一节点设备,将映射至同一个虚拟边界的虚拟网格所对应的定位数据,发送至同一个第二节点设备;

对任一个第二节点设备,执行该确定模块所执行的步骤。

需要说明的是:上述实施例提供的定位数据处理装置在处理定位数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的定位数据处理装置与定位数据处理方法实施例属于同一构思,其具体实现过程详见定位数据处理方法实施例,这里不再赘述。

图8是本发明实施例提供的计算机设备的结构示意图,该计算机设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条指令,该至少一条指令由该处理器801加载并执行以实现上述各个定位数据处理方法实施例提供的定位数据处理方法。当然,该计算机设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条指令的存储器,上述至少一条指令可由终端中的处理器执行以完成上述定位数据处理方法实施例中定位数据处理方法。例如,该计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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