一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种设备聚合方法及装置与流程

2022-05-18 06:32:30 来源:中国专利 TAG:


1.本发明实施例涉及城市公共安全技术领域,尤其涉及一种设备聚合方法及装置。


背景技术:

2.在实现基于设备的地图业务时,当地图上需要展示的设备过多时,一般会基于图面效果和渲染性能的考虑,在大比例尺展示完整的业务数据,而在小比例尺展示聚合态数据。在处理不同数量级、不同分布形态设备时,如何通过聚合算法取得更加合理的聚合效果成为急需解决的问题。
3.现阶段,针对需要展示的设备进行聚合处理时,通常采用基于设备的空间位置信息进行聚合处理的方式。即,首先从分布在地图不同位置的各设备中随机选择出多个设备作为初始的聚合中心点,再针对每个初始的聚合中心点,通过根据该初始的聚合中心点的空间位置信息以及除该初始的聚合中心点以外的任一设备的空间距离信息确定该设备与该初始的聚合中心点之间的距离,若该距离符合预设距离阈值,则将该设备聚合到该初始的聚合中心点中,从而即可完成针对各设备的聚合。但是,由于这种聚合方式是仅通过设备的空间位置信息进行聚合,因此所耗费的聚合时间较长,从而会导致针对各设备进行聚合的效率低。
4.综上,目前亟需一种设备聚合方法,用以实现设备地图可视化的实时性和通用性。


技术实现要素:

5.本发明实施例提供了一种设备聚合方法及装置,用以实现设备地图可视化的实时性和通用性。
6.第一方面,本发明实施例提供了一种设备聚合方法,包括:
7.针对属于第一地理区域层级的任一目标地理区域,获取所述目标地理区域内属于各子目标地理区域的各设备的经纬度信息;所述各子目标地理区域为属于第二地理区域层级的地理区域;所述第二地理区域层级低于所述第一地理区域层级;
8.通过预设的多维空间树算法,对所述属于各子目标地理区域的各设备的经纬度信息进行处理,生成二维空间树;
9.确定所述第二地理区域层级对应的经度跨度和纬度跨度,并针对所述二维空间树中的任一设备,将所述设备的经纬度信息以及所述第二地理区域层级对应的经度跨度和纬度跨度,通过预设的网格距离算法,确定出所述设备所处的网格;
10.若确定所述设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定所述至少一个聚合设备节点中的任一聚合设备节点与所述设备属于同一地理区域且所述设备所处的网格的中心点与所述聚合设备节点所处的网格的中心点之间的距离最近时,将所述设备聚合到所述聚合设备节点中;所述聚合设备节点用于表征属于同一地理区域的至少一个设备的集合。
11.上述技术方案中,本发明中的技术方案通过引入预设的多维空间树算法构建出针
对各设备的二维空间树,如此通过在该二维空间树上进行遍历各设备,可以加快在针对各设备进行聚合时需要检索各设备的检索速度,以此可以提高针对各设备进行聚合的效率。而且,通过根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,可以使得通过预设的网格距离算法所准确确定的各设备的网格更加符合当前地理区域层级的需求,从而能够更加满足不同业务场景下(即不同的业务场景可以对应不同的经度跨度和纬度跨度)的设备聚合需求。具体来说,针对属于第一地理区域层级的任一目标地理区域,获取该目标地理区域内属于各子目标地理区域的各设备的经纬度信息,并通过预设的多维空间树算法,对属于各子目标地理区域的各设备的经纬度信息进行处理,如此即可生成针对各设备的二维空间树,以便通过该二维空间树能够有效地提高针对各设备的检索效率。再根据当前需要针某一地理区域层级(比如第二地理区域层级)的设备进行聚合的实际需求,确定该第二地理区域层级所对应的经度跨度和纬度跨度,并针对该二维空间树中的任一设备,将该设备的经纬度信息以及该第二地理区域层级所对应的经度跨度和纬度跨度,通过预设的网格距离算法,即可及时准确地确定出各设备的网格,如此根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,会更加贴近实际业务需求,能够更加满足不同场景下的设备聚合需求。然后,如果确定某一设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定至少一个聚合设备节点中的任一聚合设备节点与该设备属于同一地理区域且该设备所处的网格的中心点与该聚合设备节点所处的网格的中心点之间的距离最近时,就可以准确地将该设备聚合到该聚合设备节点中。如此,该方案通过预设的多维空间树算法所构建的针对各设备的二维空间树,能够提高在针对各设备进行聚合时需要检索各设备的检索速度,以此提高针对各设备进行聚合的效率,并通过根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,从而可以使得通过预设的网格距离算法所准确确定的各设备的网格更加符合当前地理区域层级的需求,也能够更加满足不同业务场景下的设备聚合需求,以此可以实现设备地图可视化的实时性和通用性。
12.可选地,在对所述属于各子目标地理区域的各设备的经纬度信息进行处理之前,还包括:
13.通过预设的数据转换方式,将所述属于各子目标地理区域的各设备的经纬度信息转换为所述各设备对应的各二维坐标值;
14.对所述属于各子目标地理区域的各设备的经纬度信息进行处理,生成二维空间树,包括:
15.确定所述各二维坐标值在第一坐标轴方向上的第一方差以及在第二坐标轴方向上的第二方差;
16.若所述第一方差大于所述第二方差,则以所述第一坐标轴方向作为切分维度,从所述各二维坐标值中确定出作为第一中值的二维坐标值,并将所述作为第一中值的二维坐标值确定为构建所述二维空间树的根节点;
17.以所述作为第一中值的二维坐标值中属于所述第一坐标轴方向的第一坐标值作为切分点,将其它二维坐标值划分为位于所述根节点的左子空间的二维坐标值集合以及位于所述根节点的右子空间的二维坐标值集合;
18.通过属于左子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的左
子树,并通过属于右子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的右子树;
19.根据所述根节点、所述左子树以及所述右子树,生成所述二维空间树。
20.上述技术方案中,为了能够更方便地构建二维空间树(也即是通过能够代表各设备的经纬度信息的简单数据进行构建),同时也为了减少数据计算量,因此可以通过预设的数据转换方式,将属于各子目标地理区域的各设备的经纬度信息转换为各设备对应的各二维坐标值,也即是将属于各子目标地理区域的各设备的经纬度信息转换到二维坐标体系中,通过二维坐标系中的各二维坐标值来代表各设备的经纬度信息,如此就可以将所占位数较多的二维经纬度信息转换为所占位数较少的简单二维坐标数据,以此实现用于遍历各设备所需的二维空间树的快速构建。此外,在构建二维空间树时,为了更准确地选择出用于构建二维空间树的各级节点(即非叶子节点),也即是将第一坐标轴方向或第二坐标轴方向作为切分维度,按照第一坐标轴方向或第二坐标轴方向,从各二维坐标值中选择出作为中值的二维坐标值,并将该二维坐标值对应的节点作为非叶子节点,将该非叶子节点作为一个分割超平面在第一坐标轴方向或第二坐标轴方向上把空间分割成两个半空间,该非叶子节点左边的子树代表在分割超平面左边的各节点,该非叶子节点右边的子树代表在超平面右边的各节点。如此,该方案所构建出的二维空间树能够提高在针对各设备进行聚合时需要检索各设备的检索速度,以此可以提高针对各设备进行聚合的效率。其中,是以第一坐标轴方向作为切分维度还是以第二坐标轴方向作为切分维度,是根据各二维坐标值在第一坐标轴方向上的第一方差与各二维坐标值在第二坐标轴方向上的第二方差的大小来确定的,该方案是选择方差大的坐标轴方向作为切分维度。此外,由于方差能够较好地反映出数据的离散程度,离散程度越小,说明数据相对比较集中,离散程度越大,说明数据相对比较离散,因此为了能够更容易地且更直观清晰地通过分割超平面将空间分割为两个半空间,所以会选择离散程度大的坐标轴方向作为切分维度,以此能够更及时准确地确定出作为中值的二维坐标值(也即分割超平面),以此实现针对空间的准确划分,也就能够实现二维空间树的快速准确构建。
21.可选地,所述从所述各二维坐标值中确定出作为第一中值的二维坐标值,包括:
22.将所述各二维坐标值中属于所述第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,得到排序后的所述各二维坐标值;
23.将所述各二维坐标值的数量与2的比值进行向下取整处理,得到第一数值,并将所述第一数值作为用于确定第一中值的索引;
24.根据所述索引从所述排序后的所述各二维坐标值中确定出作为第一中值的二维坐标值。
25.上述技术方案中,为了更准确地通过分割超平面将空间分割为两个半空间,以此实现针对空间的准确划分,可以通过从各二维坐标值中确定出作为中值的二维坐标值作为切分点(即分割超平面)。其中,在选择中值时,以第一坐标轴方向作为切分维度为例,首先将各二维坐标值中属于第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,此时排序后的各二维坐标值都会存在一个索引(在计算机中索引是从0开始的),或者可以为排序后的各二维坐标值设置一个索引。再将各二维坐标值的数量与2的比值进行向下取整处理,即可得到第一数值,并可以将该第一数值作为选择中值的索引,通过该索引即可准确
地从排序后的各二维坐标值中确定出作为第一中值的二维坐标值,以此实现针对其它二维坐标值的准确划分(即将其它二维坐标值划分到两个空间中)。
26.可选地,所述通过属于左子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的左子树,包括:
27.确定所述属于左子空间的二维坐标值集合在所述第一坐标轴方向上的第三方差以及在所述第二坐标轴方向上的第四方差;
28.若所述第三方差小于所述第四方差,则以所述第二坐标轴方向作为切分维度,从所述属于左子空间的二维坐标值集合中确定出作为第二中值的二维坐标值,并将所述作为第二中值的二维坐标值确定为与所述根节点直连的第一左关键子节点;
29.以所述第一左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
30.上述技术方案中,在确定出根节点后,为了及时准确地构建该根节点的左子树,此时需要重新确定切分维度(即根据属于左子空间的二维坐标值集合在第一坐标轴方向上的第三方差与属于左子空间的二维坐标值集合在第二坐标轴方向上的第四方差的大小来重新确定的),比如,如果第三方差小于第四方差,则以第二坐标轴方向作为切分维度,从属于左子空间的二维坐标值集合中选择出作为中值的二维坐标值,该二维坐标值作为与根节点直连的第一左关键子节点。然后,以第一左关键子节点作为左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,即可准确地构建出左子树。
31.可选地,所述方法还包括:
32.所述第三方差大于所述第四方差,则以所述第一坐标轴方向作为切分维度,从所述属于左子空间的二维坐标值集合中确定出作为第三中值的二维坐标值,并将所述作为第三中值的二维坐标值确定为与所述根节点直连的第二左关键子节点;
33.以所述第二左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
34.上述技术方案中,如果第三方差大于第四方差,则以第一坐标轴方向作为切分维度,从属于左子空间的二维坐标值集合中选择出作为中值的二维坐标值,该二维坐标值作为与根节点直连的第二左关键子节点。再以第二左关键子节点作为左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,即可准确地构建出左子树。
35.可选地,在生成二维空间树之后,还包括:
36.若确定在所述各子目标地理区域内存在至少一个待增加设备,则针对每个待增加设备,在所述二维空间树中增加所述待增加设备对应的节点时,以所述二维空间树中的根节点作为遍历起点,若当前遍历节点的切分维度为第一坐标轴方向,则在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值小于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的左子树中插入所述待增加设备对应的节点;或者,在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值大于等于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的右子树中插入所述待增加设备对应的节点,直至遍历到叶子节点时停止遍历。
37.上述技术方案中,在确定各子目标地理区域内存在至少一个待增加设备时,为了
能够将待增加设备(即新增设备)对应的节点及时准确地插入到已存在的二维空间树(即针对各子目标地理区域内已存在的各设备进行构建的二维空间树)中,会通过针对该已存在的二维空间树进行逐级遍历的方式(即以根节点作为遍历起点)进行确定任一待增加设备对应的节点在该已存在的二维空间树的具体插入位置。即,针对某一待增加设备,在遍历到某一节点时,确定该节点的具体切分维度,将该待增加设备对应的二维坐标值中属于该具体切分维度的坐标值与该当前遍历节点中属于该具体切分维度的坐标值进行比较,以此可以准确地确定出该待增加设备对应的节点的具体插入位置。比如,以具体切分维度为第一坐标轴方向为例,如果该待增加设备对应的二维坐标值中属于第一坐标轴方向的第一坐标值小于该当前遍历节点中属于第一坐标轴方向的第一坐标值,则在该当前遍历节点的左子树中插入该待增加设备对应的节点;如果该待增加设备对应的二维坐标值中属于第一坐标轴方向的第一坐标值大于等于该当前遍历节点中属于第一坐标轴方向的第一坐标值,则在该当前遍历节点的右子树中插入该待增加设备对应的节点。
38.可选地,在生成二维空间树之后,还包括:
39.若确定在所述各子目标地理区域内存在至少一个待删除设备,则针对每个待删除设备,在确定所述待删除设备在所述二维空间树中对应的节点为叶子节点时,将所述待删除设备对应的节点直接从所述二维空间树中删除;或者,在确定所述待删除设备在所述二维空间树中对应的节点存在右子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述右子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第一节点,并将所述待删除设备对应的节点替换为所述第一节点;或者,在确定所述待删除设备在所述二维空间树中对应的节点仅存在左子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述左子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第二节点,并将所述待删除设备对应的节点替换为所述第二节点,同时将所述左子树作为所述第二节点的右子树。
40.上述技术方案中,在确定各子目标地理区域内存在至少一个待删除设备时,为了将待删除设备对应的节点及时准确地从二维空间树中进行删除,同时,为了确保二维空间树的稳定性(比如某一关键节点的左子树中的任一节点在某一坐标轴方向的坐标值需要小于该关键节点在该坐标轴方向的坐标值),因此,如果确定某一待删除设备在二维空间树中对应的节点为叶子节点,则直接进行删除。如果该待删除设备在二维空间树中对应的节点存在右子树,且在该待删除设备对应的节点的切分维度为第一坐标轴方向,则在该右子树中查询出属于第一坐标轴方向的第一坐标值为最小的第一节点,并将该待删除设备对应的节点替换为该第一节点,同时递归处理删除位于该右子树中的第一节点。如果该待删除设备在二维空间树中对应的节点仅存在左子树,且确定该待删除设备对应的节点的切分维度为第一坐标轴方向,则在该左子树中查询出属于第一坐标轴方向的第一坐标值为最小的第二节点,并将该待删除设备对应的节点替换为该第二节点,同时将该左子树作为替换后的该第二节点的右子树,以及递归处理删除位于该左子树中的第二节点。
41.第二方面,本发明实施例还提供了一种设备聚合装置,包括:
42.获取单元,用于针对属于第一地理区域层级的任一目标地理区域,获取所述目标地理区域内属于各子目标地理区域的各设备的经纬度信息;所述各子目标地理区域为属于第二地理区域层级的地理区域;所述第二地理区域层级低于所述第一地理区域层级;
43.处理单元,用于通过预设的多维空间树算法,对所述属于各子目标地理区域的各设备的经纬度信息进行处理,生成二维空间树;确定所述第二地理区域层级对应的经度跨度和纬度跨度,并针对所述二维空间树中的任一设备,将所述设备的经纬度信息以及所述第二地理区域层级对应的经度跨度和纬度跨度,通过预设的网格距离算法,确定出所述设备所处的网格;若确定所述设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定所述至少一个聚合设备节点中的任一聚合设备节点与所述设备属于同一地理区域且所述设备所处的网格的中心点与所述聚合设备节点所处的网格的中心点之间的距离最近时,将所述设备聚合到所述聚合设备节点中;所述聚合设备节点用于表征属于同一地理区域的至少一个设备的集合。
44.可选地,所述处理单元还用于:
45.在对所述属于各子目标地理区域的各设备的经纬度信息进行处理之前,通过预设的数据转换方式,将所述属于各子目标地理区域的各设备的经纬度信息转换为所述各设备对应的各二维坐标值;
46.所述处理单元具体用于:
47.确定所述各二维坐标值在第一坐标轴方向上的第一方差以及在第二坐标轴方向上的第二方差;
48.若所述第一方差大于所述第二方差,则以所述第一坐标轴方向作为切分维度,从所述各二维坐标值中确定出作为第一中值的二维坐标值,并将所述作为第一中值的二维坐标值确定为构建所述二维空间树的根节点;
49.以所述作为第一中值的二维坐标值中属于所述第一坐标轴方向的第一坐标值作为切分点,将其它二维坐标值划分为位于所述根节点的左子空间的二维坐标值集合以及位于所述根节点的右子空间的二维坐标值集合;
50.通过属于左子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的左子树,并通过属于右子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的右子树;
51.根据所述根节点、所述左子树以及所述右子树,生成所述二维空间树。
52.可选地,所述处理单元具体用于:
53.将所述各二维坐标值中属于所述第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,得到排序后的所述各二维坐标值;
54.将所述各二维坐标值的数量与2的比值进行向下取整处理,得到第一数值,并将所述第一数值作为用于确定第一中值的索引;
55.根据所述索引从所述排序后的所述各二维坐标值中确定出作为第一中值的二维坐标值。
56.可选地,所述处理单元具体用于:
57.确定所述属于左子空间的二维坐标值集合在所述第一坐标轴方向上的第三方差以及在所述第二坐标轴方向上的第四方差;
58.若所述第三方差小于所述第四方差,则以所述第二坐标轴方向作为切分维度,从所述属于左子空间的二维坐标值集合中确定出作为第二中值的二维坐标值,并将所述作为第二中值的二维坐标值确定为与所述根节点直连的第一左关键子节点;
59.以所述第一左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
60.可选地,所述处理单元还用于:
61.所述第三方差大于所述第四方差,则以所述第一坐标轴方向作为切分维度,从所述属于左子空间的二维坐标值集合中确定出作为第三中值的二维坐标值,并将所述作为第三中值的二维坐标值确定为与所述根节点直连的第二左关键子节点;
62.以所述第二左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
63.可选地,所述处理单元还用于:
64.在生成二维空间树之后,若确定在所述各子目标地理区域内存在至少一个待增加设备,则针对每个待增加设备,在所述二维空间树中增加所述待增加设备对应的节点时,以所述二维空间树中的根节点作为遍历起点,若当前遍历节点的切分维度为第一坐标轴方向,则在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值小于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的左子树中插入所述待增加设备对应的节点;或者,在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值大于等于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的右子树中插入所述待增加设备对应的节点,直至遍历到叶子节点时停止遍历。
65.可选地,所述处理单元还用于:
66.在生成二维空间树之后,若确定在所述各子目标地理区域内存在至少一个待删除设备,则针对每个待删除设备,在确定所述待删除设备在所述二维空间树中对应的节点为叶子节点时,将所述待删除设备对应的节点直接从所述二维空间树中删除;或者,在确定所述待删除设备在所述二维空间树中对应的节点存在右子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述右子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第一节点,并将所述待删除设备对应的节点替换为所述第一节点;或者,在确定所述待删除设备在所述二维空间树中对应的节点仅存在左子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述左子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第二节点,并将所述待删除设备对应的节点替换为所述第二节点,同时将所述左子树作为所述第二节点的右子树。
67.第三方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面任意所述的设备聚合方法。
68.第四方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面任意所述的设备聚合方法。
附图说明
69.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本
领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
70.图1为本发明实施例提供的一种设备聚合方法的流程示意图;
71.图2为本发明实施例提供的一种构建二维空间树所需的分割超平面示意图;
72.图3为本发明实施例提供的一种二维空间树示意图;
73.图4为本发明实施例提供的一种可能的设备聚合地图的示意图;
74.图5为本发明实施例提供的一种设备聚合装置的结构示意图;
75.图6为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
76.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
77.下面首先对本发明实施例中涉及的部分用语进行解释说明,以便于本领域技术人员进行理解。
78.(1)k-d树(k-dimensional树))是一种分割k维数据空间的数据结构,主要应用于多维空间数据的搜索,是二叉空间划分树的一个特例。k-d树是每个节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两个半空间。节点左边的子树代表在超平面左边的点,节点右边的子树代表在超平面右边的点。选择超平面的方法如下:每个节点都与k维中垂直于超平面的那一维有关。因此,比如,如果选择按照x轴划分,所有x值小于指定值的节点都会出现在左子树,所有x值大于指定值的节点都会出现在右子树。这样,超平面可以用该x值来确定,其法线为x轴的单位向量。
79.(2)网格距离算法(grid-distance-based clustering)初始时没有任何已知聚合点,然后对每个点进行迭代,计算一个点的外包正方形,若此点的外包正方形与现有的聚合点的外包正方形不相交,则新建聚合点,若相交,则把该点聚合到该聚合点中,若点与多个已知的聚合点的外包正方形相交,则计算该点到聚合点的距离,聚合到距离最近的聚合点中,如此循环,直到所有点都遍历完毕。
80.如上介绍了本发明实施例中涉及的部分用语,下面对本发明实施例涉及的技术特征进行介绍。
81.图1示例性的示出了本发明实施例提供的一种设备聚合方法的流程,该流程可以由设备聚合装置执行。
82.如图1所示,该流程具体包括:
83.步骤101,针对属于第一地理区域层级的任一目标地理区域,获取所述目标地理区域内属于各子目标地理区域的各设备的经纬度信息。
84.本发明实施例中,各子目标地理区域为属于第二地理区域层级的地理区域;第二地理区域层级低于第一地理区域层级。在需要针对分布在某一区域的各设备(比如服务器设备、道路监控设备或烟雾报警器设备等)在地图上进行聚合展示时,首先需要获取该区域内各设备的经纬度信息,比如需要将某一省内各城市的各设备在地图上进行聚合展示时,
首先获取在各城市内的各设备的经纬度信息,或者,需要将某一城市内各区(县)的各设备在地图上进行聚合展示时,首先获取在各区(县)内的各设备的经纬度信息,或者,需要将某一区(县)内各乡镇的各设备在地图上进行聚合展示时,首先获取在各乡镇内的各设备的经纬度信息,本发明实施例对此并不作限定。在获取在各设备的经纬度信息后,为了能够更方便地构建二维空间树(也即是通过能够代表各设备的经纬度信息的简单数据进行构建),同时也为了减少数据计算量,可以针对各设备的经纬度信息按照各设备所属区域进行降维划分处理,再针对降维划分处理后的各设备的经纬度信息通过预设的数据转换方式,转换为各设备对应的各二维坐标值,也即是,将各设备的经纬度信息转换到二维坐标体系中,通过二维坐标系中的各二维坐标值来代表各设备的经纬度信息,如此就可以将所占位数较多的二维经纬度信息转换为所占位数较少的简单二维坐标数据;或者可以不针对各设备的经纬度信息按照各设备所属区域进行降维划分处理,直接通过预设的数据转换方式,将各设备的经纬度信息转换为各设备对应的各二维坐标值。示例性地,以需要对某一省内各城市的各设备进行聚合为例,首先获取在各城市内分布的各设备的经纬度信息,比如各设备的经纬度信息为[[longitudea1,latitudea1,regiona],[longitudeb1,latitudeb1,regionb],[longitudea2,latitudea2,regiona],[longitudea3,latitudea3,regiona],[longitudeb2,latitudeb2,regi onb],[longitudea4,latitudea4,regiona],[longitudeb3,latitudeb3,regionb]]。其中,longitude用于表示设备经度,latitude用于表示设备纬度,region用于表示设备所属区域。在获取到各设备的经纬度信息后,比如以针对各设备的经纬度信息按照各设备所属区域进行降维划分处理为例,按照各设备所属区域将各设备的经纬度信息降维为二维经纬度数据,也即是,regiona:[[longitudea1,latitudea1],[longitudea2,latitudea2],[longitudea3,latitude a3],[longitudea4,latitudea4]];region:[[longitudeb1,latitudeb1],[longitudeb2,latitu deb2],[longitudeb3,latitudeb3]]。然后,可以通过在预设的坐标体系中,将降维后的各设备的二维经纬度数据进行转换处理,得到对应的各二维坐标值,即,[longitudea1,latitudea1]对应二维坐标值(2,3);[longitudea2,latitudea2]对应二维坐标值(4,7);[longitudea3,latitudea3]对应二维坐标值(5,4);[longitudea4,latitudea4]对应二维坐标值(7,2);[longitudea5,latitudea5]对应二维坐标值(8,1);[longitudea6,latitudea6]对应二维坐标值(9,6)。其中,需要说明的是,对任一区域内(比如regiona或regionb)的二维经纬度数据在所在维度进行一次空间二维排序,存储下来,然后在后续的中值选择中,无须每次都对其子集进行排序,提升了处理性能。
[0085]
步骤102,通过预设的多维空间树算法,对所述属于各子目标地理区域的各设备的经纬度信息进行处理,生成二维空间树。
[0086]
本发明实施例中,采用预设的多维空间树算法(比如k-d树)进行构建二维空间树。具体地,在确定二维空间树的根节点时,需要首先确定用于选取根节点所需的具体切分维度,且由于方差能够较好地反映出数据的离散程度,离散程度越小,说明数据相对比较集中,离散程度越大,说明数据相对比较离散,而且为了能够更容易地且更直观清晰地通过分割超平面将空间分割为两个半空间,所以会选择离散程度大的坐标轴方向作为切分维度,以此能够更及时准确地确定出作为中值的二维坐标值(也即分割超平面),以此实现针对空间的准确划分。因此,通过根据各二维坐标值在第一坐标轴方向上的第一方差与各二维坐
标值在第二坐标轴方向上的第二方差的大小来确定是以第一坐标轴方向作为切分维度还是以第二坐标轴方向作为切分维度。在构建二维空间树时,为了更准确地选择出用于构建二维空间树的各级节点(即非叶子节点),首先确定各二维坐标值在第一坐标轴方向上的第一方差以及在第二坐标轴方向上的第二方差,通过将第一方差与第二方差进行比较来确定选取根节点所需的具体切分维度,比如,如果第一方差大于第二方差,则以第一坐标轴方向作为切分维度,然后按照第一坐标轴方向,从各二维坐标值中选择出作为第一中值的二维坐标值,并将该作为第一中值的二维坐标值确定为构建二维空间树的根节点,将该根节点对应的分割超平面在第一坐标轴方向上把空间分割成两个半空间,该根节点左边的子树代表在分割超平面左边的各节点,该非叶子节点右边的子树代表在超平面右边的各节点,即,将作为第一中值的二维坐标值中属于第一坐标轴方向的第一坐标值作为切分点,将其它二维坐标值划分为位于根节点的左子空间的二维坐标值集合以及位于根节点的右子空间的二维坐标值集合。然后,通过属于左子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的左子树,以及通过属于右子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的右子树,并根据根节点、左子树以及右子树,生成二维空间树。其中,在从各二维坐标值中确定出作为第一中值的二维坐标值时,首先需要将各二维坐标值中属于第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,此时排序后的各二维坐标值都会存在一个索引(在计算机中索引是从0开始的),或者可以为排序后的各二维坐标值设置一个索引。再将各二维坐标值的数量与2的比值进行向下取整处理,得到第一数值,并将该第一数值作为用于确定第一中值的索引。然后,根据该索引从排序后的各二维坐标值中确定出作为第一中值的二维坐标值。
[0087]
其中,在确定出用于构建二维空间树所需的左子树时,为了及时准确地构建该根节点的左子树,此时需要重新确定切分维度,也是首先确定属于左子空间的二维坐标值集合在第一坐标轴方向上的第三方差以及在第二坐标轴方向上的第四方差,通过比较第三方差与第四方差的大小来确定左子树中与根节点直连的第一左关键子节点,比如,如果第三方差小于第四方差,则以第二坐标轴方向作为切分维度,将属于左子空间的二维坐标值集合中属于第二坐标轴方向的各第二坐标值按照从小到大的顺序进行排序,此时排序后的属于左子空间的各二维坐标值都会存在一个索引,或者可以为排序后的属于左子空间的各二维坐标值设置一个索引。再将属于左子空间的各二维坐标值的数量与2的比值进行向下取整处理,得到第二数值,并将该第二数值作为用于确定第二中值的索引。然后,根据该索引从排序后的属于左子空间的各二维坐标值中确定出作为第二中值的二维坐标值,并将作为第二中值的二维坐标值确定为与根节点直连的第一左关键子节点。最后,以该第一左关键子节点作为左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于左子树的各子节点,也即是,以作为第二中值的二维坐标值中属于第二坐标轴方向的第二坐标值作为切分点,将其它属于左子空间的二维坐标值划分为位于该第一左关键子节点的左子空间的二维坐标值集合以及位于该第一左关键子节点的右子空间的二维坐标值集合,从而可以准确地构建出该第一左关键子节点的左子树和右子树。
[0088]
或者,如果第三方差大于第四方差,则以第一坐标轴方向作为切分维度,将属于左子空间的二维坐标值集合中属于第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,此时排序后的属于左子空间的各二维坐标值都会存在一个索引,或者可以为排序
后的属于左子空间的各二维坐标值设置一个索引。再将属于左子空间的各二维坐标值的数量与2的比值进行向下取整处理,得到第三数值,并将该第三数值作为用于确定第三中值的索引。然后,根据该索引从排序后的属于左子空间的各二维坐标值中确定出作为第三中值的二维坐标值,并将作为第三中值的二维坐标值确定为与根节点直连的第二左关键子节点。最后,以该第二左关键子节点作为左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于左子树的各子节点,也即是,以作为第三中值的二维坐标值中属于第一坐标轴方向的第一坐标值作为切分点,将其它属于左子空间的二维坐标值划分为位于该第二左关键子节点的左子空间的二维坐标值集合以及位于该第二左关键子节点的右子空间的二维坐标值集合,从而可以准确地构建出该第二左关键子节点的左子树和右子树。
[0089]
需要说明的是,确定用于构建二维空间树所需的右子树采用的具体实施方式可以参照上述确定用于构建二维空间树所需的左子树所采用的具体实施方式,在此不再重复赘述。
[0090]
示例性地,以上述6个二维坐标值数据为例,上述6个二维坐标值数据组成的坐标值集合a为{(2,3),(4,7),(5,4),(7,2),(8,1),(9,6)},计算出该6个二维坐标值数据在x坐标轴方向上的方差为39,以及计算出该6个二维坐标值数据在y坐标轴方向上的方差为28.63,通过比较可知在x坐标轴方向上的方差最大,因此以x坐标轴方向作为切分维度,将上述6个二维坐标值数据在x坐标轴方向上按照从小到大的顺序进行排序,即可得到排序后的各二维坐标值数据为{(2,3),(4,7),(5,4),(7,2),(8,1),(9,6)}。在从排序后的各二维坐标值数据中确定中值时,由于在数学理论上中值为(5 7)/2=6,但是由于在构建二维空间树所采用的预设的多维空间树算法要求中值需在各二维坐标值数据中,所以本发明实施所采用的确定中值方式为将坐标值集合a中的元素数量与2的比值进行向下取整处理,即len(坐标值集合a)//2=3,得到一个索引值3,并根据该索引值3即可从排序后的坐标值集合a中确定出中值(在计算机中索引是从0开始的),即排序后的坐标值集合a[3]=(7,2)。如此根据x坐标轴方向上排序后的各坐标值2,4,5,7,8,9选取出的中值为7,所以选择(7,2)来构建根节点,该根节点的分割超平面就是如图2所示的通过(7,2)并垂直于x坐标轴的直线x=7。如此,通过该分割超平面x=7即可将各二维坐标值所在坐标空间划分为两个子空间,即x≤7的部分为左子空间,包含三个节点,即坐标值集合b{(2,3),(4,7),(5,4)};x>7的部分为右子空间,包含两个节点,即坐标值集合c{(8,1),(9,6)}。在构建出该二维空间树的根节点后,即可开始构建与该根节点直连的下一级节点,也即是构建该根节点的左子树和右子树。
[0091]
其中,在构建该根节点(7,2)的左子树时,按照与构建根节点(7,2)时所采用的相同实施方式进行构建,即,通过确定属于左子空间的各二维坐标值{(2,3),(4,7),(5,4)}中在x坐标轴方向上的方差以及在y坐标轴方向上的方差,可知在y坐标轴方向上的方差大于在x坐标轴方向上的方差,因此以y坐标轴方向作为切分维度,将坐标值集合b{(2,3),(4,7),(5,4)}在y坐标轴方向上按照从小到大的顺序进行排序,即可得到排序后的各二维坐标值数据为{(2,3),(5,4),(4,7)}。然后,将坐标值集合b中的元素数量与2的比值进行向下取整处理,即len(坐标值集合b)//2=1,得到一个索引值1,并根据该索引值1即可从排序后的坐标值集合b中确定出中值(在计算机中索引是从0开始的),即排序后的坐标值集合b[1]=
(5,4),并以中值(5,4)作为与根节点(7,2)直连的用于构建左子树的关键节点。此时的分割超平面就是如图2所示的通过(5,4)并垂直于y坐标轴的直线y=4。如此,通过该分割超平面y=4即可将属于左子空间的各二维坐标值所在坐标空间划分为两个子空间,即位于关键节点(5,4)的左子树节点(2,3),以及位于关键节点(5,4)的右子树节点(4,7),因此将节点(2,3)挂在关键节点(5,4)的左子树,以及将节点(4,7)挂在关键节点(5,4)的右子树。
[0092]
在构建该根节点(7,2)的右子树时,按照与构建根节点(7,2)时所采用的相同实施方式进行构建,即,通过确定属于右子空间的各二维坐标值{(8,1),(9,6)}中在x坐标轴方向上的方差以及在y坐标轴方向上的方差,可知在y坐标轴方向上的方差大于在x坐标轴方向上的方差,因此以y坐标轴方向作为切分维度,将坐标值集合c{(8,1),(9,6)}在y坐标轴方向上按照从小到大的顺序进行排序,即可得到排序后的各二维坐标值数据为{(8,1),(9,6)}。然后,将坐标值集合c中的元素数量与2的比值进行向下取整处理,即len(坐标值集合c)//2=1,得到一个索引值1,并根据该索引值1即可从排序后的坐标值集合c中确定出中值(在计算机中索引是从0开始的),即排序后的坐标值集合c[1]=(9,6),并以中值(9,6)作为与根节点(7,2)直连的用于构建右子树的关键节点。此时的分割超平面就是如图2所示的通过(9,6)并垂直于y坐标轴的直线y=6。如此,通过该分割超平面y=6即可将属于右子空间的各二维坐标值所在坐标空间划分为两个子空间,即位于关键节点(9,6)的左子树节点(8,1),没有右子树节点,因此将节点(8,1)挂在关键节点(9,6)的左子树。至此,通过上述实施方式针对上述6个二维坐标值数据进行处理即可构建出如图3所示的二维空间树。
[0093]
此外,在构建出二维空间树后,如果确定各子目标地理区域内存在至少一个待增加设备时,为了能够将待增加设备(即新增设备)对应的节点及时准确地插入到已存在的二维空间树中,会通过针对该已存在的二维空间树进行逐级遍历的方式(即以二维空间树中的根节点作为遍历起点)进行确定任一待增加设备对应的节点在该已存在的二维空间树的具体插入位置。即,针对任一待增加设备,首先通过预设的数据转换方式,将该待增加设备的经纬度信息转换为该待增加设备对应的二维坐标值,在遍历到某一节点时,确定该节点的具体切分维度,将该待增加设备对应的二维坐标值中属于该具体切分维度的坐标值与该当前遍历节点中属于该具体切分维度的坐标值进行比较,以此可以准确地确定出该待增加设备对应的节点的具体插入位置。比如,以具体切分维度为第一坐标轴方向为例,如果该待增加设备对应的二维坐标值中属于第一坐标轴方向的第一坐标值小于该当前遍历节点中属于第一坐标轴方向的第一坐标值,则在该当前遍历节点的左子树中插入该待增加设备对应的节点;如果该待增加设备对应的二维坐标值中属于第一坐标轴方向的第一坐标值大于等于该当前遍历节点中属于第一坐标轴方向的第一坐标值,则在该当前遍历节点的右子树中插入该待增加设备对应的节点,直至遍历到叶子节点时停止遍历。
[0094]
或者,如果确定各子目标地理区域内存在至少一个待删除设备,则为了将待删除设备对应的节点及时准确地从二维空间树中进行删除,同时,为了确保二维空间树的稳定性(比如某一关键节点的左子树中的任一节点在某一坐标轴方向的坐标值需要小于该关键节点在该坐标轴方向的坐标值),因此,如果确定某一待删除设备在二维空间树中对应的节点为叶子节点,则直接进行删除。如果该待删除设备在二维空间树中对应的节点存在右子树,且在该待删除设备对应的节点的切分维度为第一坐标轴方向,则在该右子树中查询出属于第一坐标轴方向的第一坐标值为最小的第一节点,并将该待删除设备对应的节点替换
为该第一节点,同时递归处理删除位于该右子树中的第一节点。如果该待删除设备在二维空间树中对应的节点仅存在左子树,且确定该待删除设备对应的节点的切分维度为第一坐标轴方向,则在该左子树中查询出属于第一坐标轴方向的第一坐标值为最小的第二节点,并将该待删除设备对应的节点替换为该第二节点,同时将该左子树作为替换后的该第二节点的右子树,以及递归处理删除位于该左子树中的第二节点。
[0095]
示例性地,针对某一待删除节点,现有方案是将该待删除节点的所有子节点组成一个新的集合,然后对该新的集合进行重新构建,并将构建好的子树挂载到被删节点即可,但是这种处理方式性能欠佳,使得在针对二维空间树中的某一节点或某几个节点进行删除的效率低。因此,本发明实施例采用的技术方案为:首先确定某一待删除节点(比如节点t)的切分维度,假设为x坐标轴方向。下面根据待删节点的几类不同情形进行考虑。
[0096]
第一种情形:待删除节点t无子树。
[0097]
待删除节点t为叶子节点,则可直接删除该待删除节点t。
[0098]
第二种情形:待删除节点t有右子树。
[0099]
在待删除节点t的右子树中查询出在x坐标轴方向上的坐标值最小的节点,比如节点p,则可以用该节点p替换掉该待删除节点t,并递归处理删除右子树中的节点p。
[0100]
第三种情形:待删除节点t无右子树有左子树。
[0101]
在待删除节点t的左子树中查询出在x坐标轴方向上的坐标值最小的节点,比如节点q,即q=findmin(t.left,cutting-dim=x)。然后,可以用该节点q替换掉该待删除节点t,并递归处理删除右子树中的节点q。需要说明的是,之所以未采用findmax(t.left,cutting-dim=x)节点来替换待删除节点t,是由于原被删节点的左子树节点存在x坐标轴方向上最大值相等的情形,这样就破坏了左子树在x坐标轴方向上的坐标值需小于其根节点的定义。
[0102]
步骤103,确定所述第二地理区域层级对应的经度跨度和纬度跨度,并针对所述二维空间树中的任一设备,将所述设备的经纬度信息以及所述第二地理区域层级对应的经度跨度和纬度跨度,通过预设的网格距离算法,确定出所述设备所处的网格。
[0103]
本发明实施例中,上述构建的二维空间树是为了更快的遍历速度和更高的样本紧凑度、分离度,因此需要在网格距离算法的基础上引入二维空间树来加快针对设备的遍历速度,但是考虑到实际业务场景,点位设备聚类需要考虑设备自身属性,因此对使用k-d树分类的结果集使用优化的网格距离算法对聚类的点位进行进一步处理,以此满足业务贴合度。
[0104]
具体地,在确定每个设备所处的网格(即设备点的外包正方形)时,外包正方形的边长即为当前zoom层级下的网格边长,首先确定当前第二地理区域层级对应的经度跨度和纬度跨度,即通过下述方式确定经度跨度和纬度跨度:
[0105][0106]
其中,l
x
用于表示经度跨度,ly用于表示纬度跨度,zoom用于表示当前地理区域层级,其中,zoom的取值为0至19中的任一整数,比如zoom=14层级下的设备类型分布聚合场
景,或者zoom=15层级下的设备类型分布聚合场景等。
[0107]
在确定当前第二地理区域层级对应的经度跨度和纬度跨度后,通过下述方式确定任一设备(x,y)所处的网格:
[0108][0109]
其中,colm用于表示设备所处的网格的长度,coln用于表示设备所处的网格的宽度,x用于表示设备的经度信息,y用于表示设备的纬度信息。
[0110]
步骤104,若确定所述设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定所述至少一个聚合设备节点中的任一聚合设备节点与所述设备属于同一地理区域且所述设备所处的网格的中心点与所述聚合设备节点所处的网格的中心点之间的距离最近时,将所述设备聚合到所述聚合设备节点中。
[0111]
本发明实施例中,从二维空间树中的根节点开始遍历,此时在确定该根节点对应的设备所处的网格在设备地图中不存在时,则可以基于该根节点对应的设备进行构建聚合设备节点,在遍历到该根节点的下一级节点时,如果确定该下一级节点对应的设备在设备地图中所处的网格与设备地图中已存在的根节点对应的设备所处的网格不存在重叠,则根据该下一级节点对应的设备进行新建聚合设备点,如果确定该下一级节点对应的设备在设备地图中所处的网格与设备地图中已存在的根节点对应的设备所处的网格存在重叠,则在确定该下一级节点对应的设备与根节点对应的设备属于同一地理区域时,将该下一级节点对应的设备聚合到根节点对应的聚合设备节点中,在确定该下一级节点对应的设备与根节点对应的设备不属于同一地理区域时,直接根据该下一级节点对应的设备构建一个新的聚合设备节点,以此类推,在遍历完二维空间树中的各节点后,即可构建出如图4所示的一种可能的设备聚合地图。其中,如果确定所遍历的其它任一下一级节点对应的设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定该下一级节点对应的设备与至少一个聚合设备节点中的任一聚合设备节点属于同一地理区域且设备所处的网格的中心点与该聚合设备节点所处的网格的中心点之间的距离最近时,将该下一级节点对应的设备聚合到所述聚合设备节点中。其中,聚合设备节点用于表征属于同一地理区域的至少一个设备的集合。如此,该方案运算速度相对较快,每个原始点只需计算一次,可能会有点与点距离计算,聚合点较精确地反映了所包含的原始点要素的位置信息。其中,聚类的中心点,是第一个加入该类的点的位置,并不能够代表整个聚类的中心位置,存在一定的不准确性。
[0112]
其中,针对聚类中心位置存在一定不准确性和重合区域设备归属问题,采用下述方式进行解决,即:
[0113]
步骤1:对绘制的正方形区域进行叠加分析,对每个正方形区域标识一下属于各个区域层级的比重,比重大的则标记该正方形属于该区域。
[0114]
其中,不同的zoom层级下的比例尺是固定的,这样可以明确地划分出最先的正方形区域且正方形区域的面积是一定的,然后叠加区域的面积是可以根据两个正方形区域的
面积计算的,这样,比重为叠加区域与原始正方形区域的面积占比。
[0115]
步骤2:根据设备预处理的设备自身属性,结合目前需要聚合的业务种类,将两个正方形重叠区域的设备进行过滤,根据所属正方形标记,聚合到相应的正方形区域,如果存在多个正方形重叠区域,则两两聚合。
[0116]
其中,每个设备都具有自身区域属性,比如正方形a属于地理区域a(比如某一街道或某一商场或某一机构或某一企业等),正方形b属于地理区域b,在正方形a和正方形b的相交区域存在设备d1和设备d2,d1和d2都具备自身的属性,比如d1和d2都属于地理区域a,这样相交区域的设备都归属于地理区域a。
[0117]
步骤3:将两两聚合剩余的设备,按照直线距离法寻找直线距离最近的聚合点完成聚合。
[0118]
上述实施例表明,本发明中的技术方案通过引入预设的多维空间树算法构建出针对各设备的二维空间树,如此通过在该二维空间树上进行遍历各设备,可以加快在针对各设备进行聚合时需要检索各设备的检索速度,以此可以提高针对各设备进行聚合的效率。而且,通过根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,可以使得通过预设的网格距离算法所准确确定的各设备的网格更加符合当前地理区域层级的需求,从而能够更加满足不同业务场景下(即不同的业务场景可以对应不同的经度跨度和纬度跨度)的设备聚合需求。具体来说,针对属于第一地理区域层级的任一目标地理区域,获取该目标地理区域内属于各子目标地理区域的各设备的经纬度信息,并通过预设的多维空间树算法,对属于各子目标地理区域的各设备的经纬度信息进行处理,如此即可生成针对各设备的二维空间树,以便通过该二维空间树能够有效地提高针对各设备的检索效率。再根据当前需要针某一地理区域层级(比如第二地理区域层级)的设备进行聚合的实际需求,确定该第二地理区域层级所对应的经度跨度和纬度跨度,并针对该二维空间树中的任一设备,将该设备的经纬度信息以及该第二地理区域层级所对应的经度跨度和纬度跨度,通过预设的网格距离算法,即可及时准确地确定出各设备的网格,如此根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,会更加贴近实际业务需求,能够更加满足不同场景下的设备聚合需求。然后,如果确定某一设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定至少一个聚合设备节点中的任一聚合设备节点与该设备属于同一地理区域且该设备所处的网格的中心点与该聚合设备节点所处的网格的中心点之间的距离最近时,就可以准确地将该设备聚合到该聚合设备节点中。如此,该方案通过预设的多维空间树算法所构建的针对各设备的二维空间树,能够提高在针对各设备进行聚合时需要检索各设备的检索速度,以此提高针对各设备进行聚合的效率,并通过根据地理区域层级的不同进行动态调整对应的经度跨度和纬度跨度,从而可以使得通过预设的网格距离算法所准确确定的各设备的网格更加符合当前地理区域层级的需求,也能够更加满足不同业务场景下的设备聚合需求,以此可以实现设备地图可视化的实时性和通用性。
[0119]
基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种设备聚合装置,该装置可以执行设备聚合方法的流程。
[0120]
如图5所示,该装置包括:
[0121]
获取单元501,用于针对属于第一地理区域层级的任一目标地理区域,获取所述目
标地理区域内属于各子目标地理区域的各设备的经纬度信息;所述各子目标地理区域为属于第二地理区域层级的地理区域;所述第二地理区域层级低于所述第一地理区域层级;
[0122]
处理单元502,用于通过预设的多维空间树算法,对所述属于各子目标地理区域的各设备的经纬度信息进行处理,生成二维空间树;确定所述第二地理区域层级对应的经度跨度和纬度跨度,并针对所述二维空间树中的任一设备,将所述设备的经纬度信息以及所述第二地理区域层级对应的经度跨度和纬度跨度,通过预设的网格距离算法,确定出所述设备所处的网格;若确定所述设备所处的网格与设备地图中已存在的至少一个聚合设备节点所处的网格有重叠,则在确定所述至少一个聚合设备节点中的任一聚合设备节点与所述设备属于同一地理区域且所述设备所处的网格的中心点与所述聚合设备节点所处的网格的中心点之间的距离最近时,将所述设备聚合到所述聚合设备节点中;所述聚合设备节点用于表征属于同一地理区域的至少一个设备的集合。
[0123]
可选地,所述处理单元502还用于:
[0124]
在对所述属于各子目标地理区域的各设备的经纬度信息进行处理之前,通过预设的数据转换方式,将所述属于各子目标地理区域的各设备的经纬度信息转换为所述各设备对应的各二维坐标值;
[0125]
所述处理单元502具体用于:
[0126]
确定所述各二维坐标值在第一坐标轴方向上的第一方差以及在第二坐标轴方向上的第二方差;
[0127]
若所述第一方差大于所述第二方差,则以所述第一坐标轴方向作为切分维度,从所述各二维坐标值中确定出作为第一中值的二维坐标值,并将所述作为第一中值的二维坐标值确定为构建所述二维空间树的根节点;
[0128]
以所述作为第一中值的二维坐标值中属于所述第一坐标轴方向的第一坐标值作为切分点,将其它二维坐标值划分为位于所述根节点的左子空间的二维坐标值集合以及位于所述根节点的右子空间的二维坐标值集合;
[0129]
通过属于左子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的左子树,并通过属于右子空间的二维坐标值集合,确定出用于构建所述二维空间树所需的右子树;
[0130]
根据所述根节点、所述左子树以及所述右子树,生成所述二维空间树。
[0131]
可选地,所述处理单元502具体用于:
[0132]
将所述各二维坐标值中属于所述第一坐标轴方向的各第一坐标值按照从小到大的顺序进行排序,得到排序后的所述各二维坐标值;
[0133]
将所述各二维坐标值的数量与2的比值进行向下取整处理,得到第一数值,并将所述第一数值作为用于确定第一中值的索引;
[0134]
根据所述索引从所述排序后的所述各二维坐标值中确定出作为第一中值的二维坐标值。
[0135]
可选地,所述处理单元502具体用于:
[0136]
确定所述属于左子空间的二维坐标值集合在所述第一坐标轴方向上的第三方差以及在所述第二坐标轴方向上的第四方差;
[0137]
若所述第三方差小于所述第四方差,则以所述第二坐标轴方向作为切分维度,从
所述属于左子空间的二维坐标值集合中确定出作为第二中值的二维坐标值,并将所述作为第二中值的二维坐标值确定为与所述根节点直连的第一左关键子节点;
[0138]
以所述第一左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
[0139]
可选地,所述处理单元502还用于:
[0140]
所述第三方差大于所述第四方差,则以所述第一坐标轴方向作为切分维度,从所述属于左子空间的二维坐标值集合中确定出作为第三中值的二维坐标值,并将所述作为第三中值的二维坐标值确定为与所述根节点直连的第二左关键子节点;
[0141]
以所述第二左关键子节点作为所述左子树的构建起点,通过对其它属于左子空间的二维坐标值进行划分处理,确定出属于所述左子树的各子节点。
[0142]
可选地,所述处理单元502还用于:
[0143]
在生成二维空间树之后,若确定在所述各子目标地理区域内存在至少一个待增加设备,则针对每个待增加设备,在所述二维空间树中增加所述待增加设备对应的节点时,以所述二维空间树中的根节点作为遍历起点,若当前遍历节点的切分维度为第一坐标轴方向,则在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值小于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的左子树中插入所述待增加设备对应的节点;或者,在确定所述待增加设备对应的二维坐标值中属于所述第一坐标轴方向的第一坐标值大于等于所述当前遍历节点中属于所述第一坐标轴方向的第一坐标值时,在所述当前遍历节点的右子树中插入所述待增加设备对应的节点,直至遍历到叶子节点时停止遍历。
[0144]
可选地,所述处理单元502还用于:
[0145]
在生成二维空间树之后,若确定在所述各子目标地理区域内存在至少一个待删除设备,则针对每个待删除设备,在确定所述待删除设备在所述二维空间树中对应的节点为叶子节点时,将所述待删除设备对应的节点直接从所述二维空间树中删除;或者,在确定所述待删除设备在所述二维空间树中对应的节点存在右子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述右子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第一节点,并将所述待删除设备对应的节点替换为所述第一节点;或者,在确定所述待删除设备在所述二维空间树中对应的节点仅存在左子树时,若所述待删除设备对应的节点的切分维度为第一坐标轴方向,则在所述左子树中查询出属于所述第一坐标轴方向的第一坐标值为最小的第二节点,并将所述待删除设备对应的节点替换为所述第二节点,同时将所述左子树作为所述第二节点的右子树。
[0146]
基于相同的技术构思,本发明实施例还提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
[0147]
在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的设备聚合方法中所包括的步骤。
[0148]
其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备
的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0149]
处理器601可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合设备聚合方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0150]
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0151]
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述设备聚合方法的步骤。
[0152]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0153]
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0154]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0155]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0156]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0157]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献