一种地图聚合系统及聚合方法转让专利

申请号 : CN202310172765.2

文献号 : CN115905451B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李倩高永兴陈立名胡江洪曹彬常小刚

申请人 : 菲特(天津)检测技术有限公司

摘要 :

本发明公开了一种地图聚合系统及聚合方法,属于电子地图技术领域,所述聚合系统包括:设置模块:设置每个层级聚合范围正方形盒子的边长A;数据获取模块:获取地图层级数M及基础点;数据判断命名模块:判断数据点集合中第二个点位是否属于已有盒子;循环执行模块:依次判断数据点集合中剩余点位是否属于已有盒子;得到盒子信息集合;聚合模块:根据盒子信息集合,在地图上标记聚合点;显示模块:当地图为最大层级时,显示单点,当多个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项。当地图点位数量十分庞大时,本发明能够提高视觉显示的效果,提高用户体验。

权利要求 :

1.一种地图聚合系统,所述地图包括M个层级,M为大于1的自然数,其特征在于,所述聚合系统包括:设置模块:设置每个层级聚合范围正方形盒子的边长A,将所述边长A换算为坐标长度La;

数据获取模块:获取地图层级数M及基础点,所述基础点为数据点集合中的第一个点位(X,Y),以所述基础点为中心点,创建第一个盒子,并记录第一个盒子的行数R1、列数C1、最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S;当S等于1时,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,1};

数据判断命名模块:判断数据点集合中第二个点位是否属于已有盒子;具体为:

S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;

S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;

S3021、若第二个点位属于第一个盒子所在的行,则间隔坐标长度La的距离,在该行创建一个新的盒子,新创建的盒子行数沿用第一个盒子的行数R1,列数以该行第一个盒子为基准,列数的命名方式中:右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;

S3022、若第二个点位不属于第一个盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,间隔坐标长度La的距离,行数命名方式为:上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,根据S3021中列数的命名方式进行命名;

循环执行模块:依次判断数据点集合中剩余点位是否属于已有盒子;形成盒子信息集合;

聚合模块:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2)。

2.根据权利要求1所述的地图聚合系统,其特征在于,在数据获取模块中,第一个盒子的最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2。

3.根据权利要求1所述的地图聚合系统,其特征在于,还包括显示模块:当地图为最大层级时,显示单点,当K个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项,K为人为设置参数。

4.根据权利要求1所述的地图聚合系统,其特征在于,循环执行模块中判断数据点集合中剩余点位是否属于已有盒子的方法如下:若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;

将数据获取模块、数据判断命名模块、循环执行模块得到的所有盒子集合,定义为盒子信息集合。

5.一种地图聚合方法,所述地图包括M个层级,M为大于1的自然数,其特征在于,所述聚合方法包括:S1:设置每个层级聚合范围正方形盒子的边长A,将所述边长A换算为坐标长度La;

S2:获取地图层级数M及基础点,所述基础点为数据点集合中的第一个点位(X,Y),以所述基础点为中心点,创建第一个盒子,并记录第一个盒子的行数R1、列数C1、最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S;当S等于1时,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,1};

S3:判断数据点集合中第二个点位是否属于已有盒子;具体为:

S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;

S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;

S3021、若第二个点位属于第一个盒子所在的行,则间隔坐标长度La的距离,在该行创建一个新的盒子,新创建的盒子行数沿用第一个盒子的行数R1,列数以该行第一个盒子为基准,列数的命名方式中:右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;

S3022、若第二个点位不属于第一个盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,间隔坐标长度La的距离,行数命名方式为:上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,根据S3021中列数的命名方式进行命名;

S4:依次判断数据点集合中剩余点位是否属于已有盒子;形成盒子信息集合;

S5:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2)。

6.根据权利要求5所述的地图聚合方法,其特征在于,在S2中,第一个盒子的最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2。

7.根据权利要求5所述的地图聚合方法,其特征在于,还包括S6:当地图为最大层级时,显示单点,当K个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项,K为人为设置参数。

8.根据权利要求5所述的地图聚合方法,其特征在于,S4中判断数据点集合中剩余点位是否属于已有盒子的方法如下:若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;将S2至S4得到的所有盒子集合,定义为盒子信息集合。

9.一种信息数据处理终端,其特征在于,用于实现权利要求5‑8任一项所述的地图聚合方法。

10.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求5‑8任一项所述的地图聚合方法。

说明书 :

一种地图聚合系统及聚合方法

技术领域

[0001] 本发明属于电子地图技术领域,具体涉及一种地图聚合系统及聚合方法。

背景技术

[0002] 近年来,随着物联网通讯技术的快速发展,电子地图的清晰度越来越高,随之而来的结果是电子地图的数据量越来越大,目前,越来越多的网页中包含了基于地图的定位点展示。当定位点遇到大数据量时,视觉效果十分杂乱,如图1所示,此时定位点密集度过高,存在加载缓慢的问题,甚至造成系统的卡顿或闪退;如何使其更加丝滑、清晰地进行展示成了一个问题。
[0003] 目前,传统的定位显示技术主要包括以下两种:
[0004] 先获取当前的分辨率,然后抓取整个屏幕,将整个屏幕用宫格的方式进行划分,得到若干个格子,比如九宫格或十二宫格,最后判断每个宫格内的点位数,对每个宫格进行聚合;
[0005] 首先获得第一个点位,然后以第一个点位为圆心,通过调整半径获取不同数量的点位,最后以圆为基准进行聚合;
[0006] 通过实际使用发现,现有技术存在如下的缺陷:
[0007] 第一种方案中,由于每个宫格内的点位数量不同,比如,有些宫格内的点位数较多,聚合后点位比较密集,有些宫格内点位很少,甚至没有点位;因此,其结果是分布不均衡,经常导致聚合后的地图点位局部密集。
[0008] 第二种方案中,相邻两个圆可能存在交叉,此时交叉部分的点位聚合存在一定的不确定性,比如经常将交叉范围的点位聚合至第一个圆内,其结果依然是局部区域聚合点位密集。

发明内容

[0009] 本发明为解决公知技术中存在的技术问题,提供一种地图聚合系统及聚合方法,在地图点位数量十分庞大时,解决视觉效果十分杂乱和性能资源消耗过大的问题,以提高用户体验。
[0010] 本发明的第一目的是提供一种地图聚合系统,所述地图包括M个层级,M为大于1的自然数,所述聚合系统包括:
[0011] 设置模块:设置每个层级聚合范围正方形盒子的边长A,将所述边长A换算为坐标长度La;
[0012] 数据获取模块:获取地图层级数M及基础点,所述基础点为数据点集合中的第一个点位(X,Y),以所述基础点为中心点,创建第一个盒子,并记录第一个盒子的行数R1、列数C1、最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S;当S等于1时,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,1};
[0013] 数据判断命名模块:判断数据点集合中第二个点位是否属于已有盒子;具体为:
[0014] S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;
[0015] S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;
[0016] S3021、若第二个点位属于第一个盒子所在的行,则间隔坐标长度La的距离,在该行创建一个新的盒子,新创建的盒子行数沿用第一个盒子的行数R1,列数以该行第一个盒子为基准,列数的命名方式中:右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;
[0017] S3022、若第二个点位不属于第一个盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,间隔坐标长度La的距离,行数命名方式为:上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,根据S3021中列数的命名方式进行命名;
[0018] 循环执行模块:依次判断数据点集合中剩余点位是否属于已有盒子;形成盒子信息集合;
[0019] 聚合模块:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2)。
[0020] 优选地,在数据获取模块中,第一个盒子的最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2。
[0021] 优选地,还包括显示模块:当地图为最大层级时,显示单点,当K个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项,K为人为设置参数。
[0022] 优选地,循环执行模块中判断数据点集合中剩余点位是否属于已有盒子的方法如下:若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;将数据获取模块、数据判断命名模块、循环执行模块得到的所有盒子集合,定义为盒子信息集合。
[0023] 本发明的第二目的是提供一种地图聚合方法,所述地图包括M个层级,M为大于1的自然数,所述聚合方法包括:
[0024] S1:设置每个层级聚合范围正方形盒子的边长A,将所述边长A换算为坐标长度La;
[0025] S2:获取地图层级数M及基础点,所述基础点为数据点集合中的第一个点位(X,Y),以所述基础点为中心点,创建第一个盒子,并记录第一个盒子的行数R1、列数C1、最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S;当S等于1时,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,1};
[0026] S3:判断数据点集合中第二个点位是否属于已有盒子;具体为:
[0027] S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;
[0028] S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;
[0029] S3021、若第二个点位属于第一个盒子所在的行,则间隔坐标长度La的距离,在该行创建一个新的盒子,新创建的盒子行数沿用第一个盒子的行数R1,列数以该行第一个盒子为基准,列数的命名方式中:右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;
[0030] S3022、若第二个点位不属于第一个盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,间隔坐标长度La的距离,行数命名方式为:上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,根据S3021中列数的命名方式进行命名;
[0031] S4:依次判断数据点集合中剩余点位是否属于已有盒子;形成盒子信息集合;
[0032] S5:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2)。
[0033] 优选地,在S2中,第一个盒子的最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2。
[0034] 优选地,还包括S6:当地图为最大层级时,显示单点,当K个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项,K为人为设置参数。
[0035] 优选地,S4中判断数据点集合中剩余点位是否属于已有盒子的方法如下:若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;将S2至S4得到的所有盒子集合,定义为盒子信息集合。
[0036] 本发明的第三目的是提供一种信息数据处理终端,用于实现上述地图聚合方法。
[0037] 本发明的第四目的是提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述地图聚合方法。
[0038] 本发明具有的优点和积极效果是:
[0039] 本发明利用正方形盒子作为数据集合的基准模板,同时结合合理逻辑关系的盒子识别、计数和命名关系,最后进行盒子聚合,在地图点位数量十分庞大时,能够提高视觉效果,提高用户体验。

附图说明

[0040] 图1为数据量大,聚合前的效果图;
[0041] 图2为本申请优选实施例中S2的示意图;
[0042] 图3为本申请优选实施例中S3021的示意图;
[0043] 图4为本申请优选实施例中S3022的示意图;
[0044] 图5为本申请优选实施例中S5的示意图;
[0045] 图6为本申请优选实施例中S6的示意图。

具体实施方式

[0046] 为能进一步了解本发明的发明内容、特点及功效,兹列举以下实施例,并配合附图详细说明如下:
[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的技术方案,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 请参阅图2至图6。
[0049] 一种地图聚合方法,所述地图包括M个层级,M为大于1的自然数,所述聚合方法包括:
[0050] S1:用户可自定义设置每个层级聚合范围正方形盒子的边长,边长为实际长度加计量单位(如:100米、200千米等),下文用字母A代表,将所述边长换算为坐标长度,下文用La代表;所述盒子指的是一个正方形区域内数据点位的集合;
[0051] S2:获取地图层级数M及数据点集合中的第一个点位(X,Y),作为基础点,第一个点位(X,Y)可以采用随机选取的方式,也可以采用指定的方式,数据点集合指的是整个地图的数据点,以基础点为中心点,创建第一个盒子(该盒子最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2;),并记录其行数R1、列数C1(默认第一个点所在盒子为第一行R1、第一列C1),最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S(第一个盒子的第一个点总数为1)。
[0052] 如图2,盒子1记录为:Box1{R1,C1,minX,maxX,minY,maxY,1};
[0053] S3:判断数据点集合中第二个点位是否属于已有盒子;具体为:
[0054] S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;如:BoxN{RN,CN,minX,maxX,minY,maxY,S};
[0055] S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;
[0056] S3021、若第二个点位属于第一个盒子所在的行,则依据坐标长度La,在该行创建一个新的盒子,新创建的盒子行数不变,沿用第一个盒子行数,列数以该行第一个盒子列数为基准,间隔坐标长度La的距离,列数命名方式为:右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;如图3,第二个盒子记录为:Box2{R1,C3,minX,maxX,minY,maxY,1};
[0057] S3022、若第二个点位不属于第一个盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,间隔坐标长度La的距离,行数命名方式为:上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,根据S3021中列数命名方式进行命名;
[0058] 如图4,第二个盒子记录为:Box2{R‑3,C1,minX,maxX,minY,maxY,1};
[0059] S4:依次判断数据点集合中剩余点位是否属于已有盒子;若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;将S2‑S4中得到的盒子进行集合,得到盒子信息集合;
[0060] S5:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2);聚合点位效果如图5所示;
[0061] S6:当地图为最大层级时,显示单点(不进行聚合),当多个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项。
[0062] 如图6所示,单个点位重合时,查看每个效果,可给每个点添加对应信息窗等事件。
[0063] 一种地图聚合系统,所述地图包括M个层级,M为大于1的自然数,所述聚合系统包括:
[0064] 设置模块:设置每个层级聚合范围正方形盒子的边长、实际长度加剂量单位A,将所述边长换算为坐标长度La;
[0065] 数据获取模块:获取地图层级数M及数据点集合中的第一个点位(X,Y),第一个点位(X,Y)可以采用随机选取的方式,也可以采用指定的方式,作为基础点,以该点位为中心点,创建第一个盒子(该盒子最小X坐标为:X‑La/2;最大X坐标为X+La/2:最小Y坐标为:Y‑La/2;最大Y坐标为:Y+La/2;),并记录其行数R1、列数C1(默认第一个点所在盒子为第一行R1、第一列C1),最大X坐标maxX、最大Y坐标maxY、最小X坐标minX、最小Y坐标minY,以及盒子内点位总数S(第一个盒子的第一个点总数为1);
[0066] 数据判断命名模块:判断数据点集合中第二个点位是否属于已有盒子;具体为:
[0067] S301、若第二个点位属于已有盒子,则将所属盒子内点位总数S加1,其他字段值不变,记录结果为:Box1{R1,C1,minX,maxX,minY,maxY,2},继续遍历下一点位;如:BoxN{RN,CN,minX,maxX,minY,maxY,S};
[0068] S302、若第二个点位不属于已有盒子,先判断是否属于已有盒子所在的行;
[0069] S3021、若第二个点位属于第一个盒子所在的行,行数为R1,则依据坐标长度La,在该行创建一个新的盒子,该盒子行数沿用已有盒子,列数以该行第一个盒子为基准,创建的新盒子行数不变,记录结果为:Box2{R1,C3,minX,maxX,minY,maxY,1},结合坐标长度La间隔数,右侧为正数递增C2、C3、C4...,左侧为负数递减C‑1、C‑2、C‑3...;
[0070] S3022、若第二个点位不属于已有盒子所在的行,则依据坐标长度La计算第二个点位所在行,行数以第一个盒子为基准,结合坐标长度La间隔数,上方为正数递增R2、R3、R4...,下方为负数递减R‑1、R‑2、R‑3...;并判断第二个点位是否为该行第一个盒子,若为该行第一个盒子,则为C1,若不是该行第一个盒子,参考S3021的命名方式;
[0071] 循环执行模块:依次判断数据点集合中的每一个点位,是否属于已有盒子;若属于已有盒子,则该盒子点位总数加1,若无匹配盒子,则依照S3021和S3022进行创建,直至点位集合中所有的点位都与盒子匹配成功;
[0072] 聚合模块:根据盒子信息集合,在地图上标记聚合点,聚合点位图标中心点为(minX+(maxX‑minX)/2, minY+(maxY‑minY)/2);
[0073] 显示模块:当地图为最大层级时,显示单点,当多个点位重叠时,加大点位并显示重叠数量,点击时向上延伸显示对应的重叠项。
[0074] 一种信息数据处理终端,用于实现上述地图聚合方法。
[0075] 一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述地图聚合方法。
[0076] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL) 或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行 传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0077] 以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。