CN116863089A - 地图网格划分方法及基于该方法的地图要素显示方法 - Google Patents
地图网格划分方法及基于该方法的地图要素显示方法 Download PDFInfo
- Publication number
- CN116863089A CN116863089A CN202310763030.7A CN202310763030A CN116863089A CN 116863089 A CN116863089 A CN 116863089A CN 202310763030 A CN202310763030 A CN 202310763030A CN 116863089 A CN116863089 A CN 116863089A
- Authority
- CN
- China
- Prior art keywords
- grid
- level
- point
- map
- tile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 238000009877 rendering Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000005192 partition Methods 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种地图网格划分方法及基于该方法的地图要素显示方法,将地球表面按照新的网格划分方法进行划分,方便每个网格瓦片的度数计算,将地球上的点所处第1网格层级到第18网格层级瓦片的行号和列号分别进行编码后,按照从左到右的顺序排列,采用新的网格编码规则对个网格瓦片进行编码,方便通过网格编码建立各地图网格层级之间的关联关系,便于计算,且阅读性强。
Description
技术领域
本发明涉及电子地图显示技术领域,特别涉及一种地图网格划分方法及基于该方法的地图要素显示方法。
背景技术
随着嵌入式设备的不断发展,嵌入式地图已快速融入到人们的生活和工作中。人们也在探寻着一些地图网格划分的方式来使嵌入式设备对地图数据的处理更加的方便快捷。授权公告号为CN115661396B的中国发明专利公开了一种基于全球网格划分的地图要素注记显示方法及系统,其将全球地图地理空间范围经度-180~180,纬度-90~90,按照不同比例尺划分为L层,每一层将上一层中的每个网格划分为一行两列大小相等的网格,其中L的最大值为15,到第15层的经度范围约为39.55″即1.32公里规则块。该网格划分方法的精度较低。
另外,由于大数据时代的到来,地图可视化基于有限的数字地图显示区域内展示海量数据(物联网、部件、事件等点),目前缺少对海量点优化展示机制以及请求过滤算法,导致很容易发生浏览器超出可视化主机性能,导致卡顿或者卡死。在授权公告号为CN115661396B的中国发明专利的第0057段中公开了考虑到层号最大为15,二进制编码为1111,需要4位二进制数保存,前20位保存列号数值,中间20位保存行号数值,后4位保存层号,其余位上赋值0即最终结果与八进制数值0xFFFFFFFFFFF执行并运算,第0060段至第0076段公开了地图要素注记按网格编码入库的过程,该过程仍然需要较大的计算量,容易出现卡顿现象。
发明内容
本发明所要解决的技术问题是:提供一种地图网格划分方法及基于该方法的地图要素显示方法,建立新的网格划分方法及新的网格编码规则,通过网格编码建立各地图网格层级之间的关联关系,便于计算,且阅读性强。
为了解决上述技术问题,本发明采用的技术方案为:
一种地图网格划分方法,所述方法为:
将地球表面扩展为512°*256°,将地图分为18网格层级,其中第1网格层级将整个地球表面划分为2*1瓦片,用W或E表示;第2网格层级,将上一网格层级每个瓦片表面等分为4*4瓦片;第3~8网格层级,将上一网格层级每个瓦片表面等分为8*8瓦片,其中在第4网格层级将1°网格单元扩展为64′,第8网格层级将1′扩展为64″;第8网格层级以后的网格层级,将每个瓦片等分为2*2瓦片;
将地球上的点所处第1网格层级到第18网格层级瓦片的行号和列号分别进行编码后,按照从左到右的顺序排列。
本发明的有益效果在于:将地球表面采用新的网格划分方法,每层网格划分的划片数量和度数均为2的指数倍,从而方便各网格层级的瓦片单独编码,也方便各网格层级瓦片的宽度、长度的尺寸计算;按照新的网格编码规则,每个地球上的点,其每个网格层级上的编码均可单独读取,阅读性较强,且方便将相邻网格层级的网格码建立关联,便于后续计算。
一种基于上述地图网格划分方法的地图要素表示方法,所述方法还包括:
步骤S1根据上述地图网格划分方法以及各网格层级的编码规则,将地图上的海量要素数据的经纬度编码转换为对应的网格码;
步骤S2获取当前地图视窗左上点B和右下点C;
步骤S3将当前地图视窗左上点B和右下点C转换为对应的网格码,通过点B网格码和点C网格码,判断点B和点C在哪个同一瓦片内;
步骤S4将地图上的海量要素数据对应的网格码中,与点B和点C在同一瓦片内的数据集合作为当前视窗集合D;
步骤S5根据当前视窗集合D、左上点B和右下点C,对地图视窗进行渲染显示。
本发明的有益效果在于:在地图渲染之前对地图上的海量要素数据进行网格码转换,在地图渲染时,只要判断出当前地图视窗左上点B和右下点C所在的同一瓦片,根据网格码即可快速找到该瓦片内包含的地图要素数据集合,从而使地图视窗显示过程计算量少,计算速度快,不容易卡顿;另外,由于本申请中网格层级划分精度较高,使地图渲染显示后清晰度较高。
附图说明
图1为本发明实施例的地图网格划分方法具体举例示意图;
图2为本发明实施例的地图要素表示方法的流程图;
图3为本发明实施例的地图渲染聚合显示的示意图。
实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1至图3,本发明提供的实施例为:
一种地图网格划分方法,所述方法为:
将地球表面扩展为512°*256°,将地图分为18网格层级,其中第1网格层级将整个地球表面划分为2*1瓦片,用W或E表示;第2网格层级,将上一网格层级每个瓦片表面等分为4*4瓦片;第3~8网格层级,将上一网格层级每个瓦片表面等分为8*8瓦片,其中在第4网格层级将1°网格单元扩展为64′,第8网格层级将1′扩展为64″;第8网格层级以后的网格层级,将每个瓦片等分为2*2瓦片。
采用新的网格划分方法,使每个地图网格层级的瓦片行数、列数,以及每个瓦片单元的宽度、长度均可用2的指数进行表示,方便计算机进行计算。
表1为各网格层级对地图进行网格划分后各瓦片单元的对应尺寸表,从表1可以看出各网格层级将上一网格层级划分的片数,各网格层级的瓦片单元尺寸。
表1
由表1可知,本申请网格划分到第18层的精度较高,使后续地图显示清晰度较高。
各网格层级经过网格划分后每个瓦片的宽度和长度相等,其以度为单位,第i网格层级瓦片单元的长度或宽度Δλi的计算公式为:
当i∈[1,2]时,Δλi=2^(8-2*(i-1));
当i∈[3,8]时,Δλi=2^(3*(4-i));
当i∈[9,18]时,Δλi=2^(-i-4);
其中,i表示网格层级数,Δλi表示第i网格层级瓦片单元宽度或长度对应的度数。
进一步的,计算地球上的点在每个网格层级所处瓦片的行号和列号,具体公式为:
已知地球上点的经纬度坐标为(lat,lng),计算点(lat,lng)在第i网格层级(i∈[2,3,…,18])的网格码行列号计算公式为:
Ci=(lat-xi-1)/Δλi;
Ri=(lng-yi-1)/Δλi;
其中,lat表示地球上点的纬度,lng表示地球上点的经度,Ci表示第i网格层级的行号,Ri表示第i网格层级的列号,xi-1表示第i-1网格层级的行定位角坐标,yi-1表示第i-1网格层级的列定位角坐标,Δλi表示第i网格层级经纬度尺寸偏差,也表示第i网格层级瓦片单元宽度或者长度对应的度数;
其中,关于各网格层级的行定位角坐标、列定位角坐标,具体计算公式为:
第1网格层级的行定位角坐标为0°,第1网格层级的列定位角坐标为0°;
当2≤i≤17时,第i网格层级的行定位角坐标xi计算公式为xi=xi-1+Ci*Δλi;
第i网格层级的列定位角坐标yi计算公式为yi=yi-1+Ri*Δλi。
通过上述网格码行列号计算公式,可快速计算出各网格码对应的行列号,再按照编码规则,可快速计算出地球上的点的网格码。
一种地图网格划分方法,进一步的,所述方法还包括:
将地球上的点所处第1网格层级到第18网格层级瓦片的行号和列号分别进行编码后,按照从左到右的顺序排列。
采用新的网格编码规则,将每一网格层级的编码位单独编码出来进行显示,使计算机能快速识别出每个瓦片在每个网格层级对应的编码,阅读性强,方便将相邻层之间的网格码建立关联关系。
进一步的,各网格层级的编码规则为:
步骤G1第1网格层级:使用E、W表示东西半球,编码第1位;
步骤G2第2网格层级:列号(0~3)、行号(0~3),做四进制转十七进制一位编码,使用1位(0~F)表示,编码第2位;
步骤G3第3~8网格层级:每个网格层级列号(0~7)、行号(0~7),得两位编码,使用2位(0~7)(0~7)表示,编码第3~14位;
步骤G4第9~18网格层级:每个网格层级得到列号(0~1)、行号(0~1),做二进制转十进制一位编码,使用1位(0~3)表示,编码第15~24位。
参照图1所示,详细举例说明,将地球表面扩展为512°*256°,在第1网格层级将整个地球表面划分为2*1瓦片,每个瓦片的宽度和长度均为256°,用W表示西半球,用E表示东半球,编码第1位;在第2网格层级,将第1网格层级每个瓦片表面等分为4*4瓦片,每个瓦片的宽度和长度均为64°,用列号(0~3)、行号(0~3),做四进制转十七进制一位编码,使用1位(0~F)表示,编码第2位;在第3网格层级,将第2网格层级每个瓦片表面等分为8*8瓦片,每个瓦片的宽度和长度均为8°,用列号(0~7)、行号(0~7),得两位编码,使用2位(0~7)(0~7)表示,编码第3、4位;其他网格层级以此类推,不再赘述。
进一步的,根据各网格层级的编码规则,对地图上的点进行编码转换后,地图上的点(lat,lng)的网格码W(lat,lng)表示方法为:
W(lat,lng)=W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15W16W17W18;
用Wi表示第i网格层级的对应的网格编码位,i=1,2,…,18,则:
当i=1时,Wi=E,或者Wi=W;
当i=2时,Wi=数制转换一(RimCin);
当i∈[3,8]时,Wi=RimCin;
当i∈[9,18]时,Wi=数制转换二(RimCin);
其中,Rim=0,1,…,RiM-1;Cin=0,1,…,CiN-1;
Rim表示地图上的点(lat,lng)在第i网格层级对应的列号,Cin表示地图上的点(lat,lng)在第i网格层级对应的行号,RiM表示第i网格层级划分的列数,CiN表示第i网格层级划分的行数。
按照上述编码规则,W3、W4、W5、W6、W7、W8各占用两位,其他层级网格编码位占用一位。
具体的,对地图上的点进行网格码编码转换,具体举例为:
参照图1所示,某某办公楼的中心经纬度为A(119°21′53.51″N,26°04′32.51″E),转换成1~18层级网格码具体过程如下:
1.第1层级:根据经纬度位置确定该位置处于东半球,得第1层级网格码E,详见图1所示,地球在第1网格层级被划分为2*1瓦片,此时每个瓦片的宽度和长度均为256°,西半球用W表示,东半球用E表示;
2.第2层级:第1层级定位角坐标为(0°,0°):
a)根据公式得到列号=[(26°04′32.51″-0°)/64°]=0;
b)根据公式得到行号=[(119°21′53.51″N-0°)/64°]=1;
c)根据列号行号,做四进制转十七进制,得第2层级网格码E1,详见图1所示,在第2网格层级中,将第1网格层级的每个瓦片划分为4*4瓦片,此时每个瓦片对应的宽度和长度均为64°,A点在第2网格层级中位于第0列、第1行瓦片中;
3.第3层级:第2层级定位角坐标为(64°,0°):
a)根据公式得到列号=[(26°04′32.51″-0°)/8°]=3;
b)根据公式得到行号=[(119°21′53.51″N-64°)/8°]=6;
c)根据列号行号,得第3层级网格码E136,详见图1所示,在第3网格层级中,将第2网格层级的每个瓦片划分为8*8瓦片,此时每个瓦片对应的宽度和长度均为8°,A点在第3网格层级中位于第3列、第6行瓦片中;
4.第4层级:第3层级定位角坐标为(112°,24°):
a)根据公式得到列号=[(26°04′32.51″-24°)/1°]=2;
b)根据公式得到行号=[(119°21′53.51″N-112°)/1°]=7;
c)根据列号行号,得第4层级网格码E13627;
5.第5层级:第4层级定位角坐标为(119°,26°):
a)根据公式得到列号=[(26°04′32.51″-26°)/8′]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°)/8′]=2;
c)根据列号行号,得第5层级网格码E1362702;
6.第6层级:第5层级定位角坐标为(119°16′,26°):
a)根据公式得到列号=[(26°04′32.51″-26°)/1′]=4;
b)根据公式得到行号=[(119°21′53.51″N-119°16′)/1′]=5;
c)根据列号行号,得第6层级网格码E136270245;
7.第7层级:第6层级定位角坐标为(119°21′,26°04′):
a)根据公式得到列号=[(26°04′32.51″-26°04′)/8″]=4;
b)根据公式得到行号=[(119°21′53.51″N-119°21′)/8″]=6;
c)根据列号行号,得第7层级网格码E13627024546;
8.第8层级:第7层级定位角坐标为(119°21′48″,26°04′32″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32″)/1″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′48″)/1″]=5;
c)根据列号行号,得第8层级网格码E1362702454605;
9.第9层级:第8层级定位角坐标为(119°21′53″,26°04′32″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32″)/1/2″]=1;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53″)/1/2″]=1;
c)根据列号行号,做二进制转十进制,得第9层级网格码E13627024546053;
10.第10层级:第9层级定位角坐标为(119°21′53.32″,26°04′32.32″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.32″)/1/4″]=1;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.32″)/1/4″]=1;
c)根据列号行号,做二进制转十进制,得第10层级网格码E136270245460533;
11.第11层级:第10层级定位角坐标为(119°21′53.48″,26°04′32.48″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.48″)/1/8″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.48″)/1/8″]=0;
c)根据列号行号,做二进制转十进制,得第11层级网格码E1362702454605330;
12.第12层级:第11层级定位角坐标为(119°21′53.48″,26°04′32.48″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.48″)/1/16″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.48″)/1/16″]=0;
c)根据列号行号,做二进制转十进制,得第12层级网格码E13627024546053300;
13.第13层级:第12层级定位角坐标为(119°21′53.48″,26°04′32.48″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.48″)/1/32″]=1;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.48″)/1/32″]=1;
c)根据列号行号,做二进制转十进制,得第13层级网格码E136270245460533003;
14.第14层级:第13层级定位角坐标为(119°21′53.48″,26°04′32.48″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.48″)/1/32″]=1;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.48″)/1/32″]=1;
c)根据列号行号,做二进制转十进制,得第14层级网格码E1362702454605330033;
15.第15层级:第14层级定位角坐标为(119°21′53.50″,26°04′32.50″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.50″)/1/64″]=1;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.50″)/1/64″]=1;
c)根据列号行号,做二进制转十进制,得第15层级网格码E13627024546053300333;
16.第16层级:第15层级定位角坐标为(119°21′53.51″,26°04′32.51″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.51″)/1/128″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.51″)/1/128″]=0;
c)根据列号行号,做二进制转十进制,得第16层级网格码E136270245460533003330;
17.第17层级:第16层级定位角坐标为(119°21′53.51″,26°04′32.51″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.51″)/1/256″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.51″)/1/256″]=0;
c)根据列号行号,做二进制转十进制,得第17层级网格码E1362702454605330033300;
18.第18层级:第17层级定位角坐标为(119°21′53.51″,26°04′32.51″):
a)根据公式得到列号=[(26°04′32.51″-26°04′32.51″)/1/512″]=0;
b)根据公式得到行号=[(119°21′53.51″N-119°21′53.51″)/1/512″]=0;
c)根据列号行号,做二进制转十进制,得第18层级网格码E13627024546053300333000。
当然,针对各网格层级的编码规则,再举一个例子为:
步骤G1′第1网格层级:使用E、W表示东西半球,编码第1位;
步骤G2′第2网格层级:列号(0~3)、行号(0~3),使用2位(0~3)(0~3)表示,编码第2、3位;
步骤G3′第3~8网格层级:每个网格层级列号(0~7)、行号(0~7),得两位编码,使用2位(0~7)(0~7)表示,编码第4~15位;
步骤G4′第9~18网格层级:每个网格层级得到列号(0~1)、行号(0~1),使用2位(0~1)(0~1)表示,编码第16~35位。
按照这个例子,根据各网格层级的编码规则,对地图上的点进行编码转换后,地图上的点(lat,lng)的网格码W(lat,lng)表示方法为:
W(lat,lng)=W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15W16W17W18;
用Wi′表示第i网格层级的对应的网格编码位,i=1,2,…,18,则:
当i=1时,Wi′=E,或者Wi′=W;
当i∈[2,18]时,Wi′=RimCin;
其中,Rim=0,1,…,RiM-1;Cin=0,1,…,CiN-1;
Rim表示地图上的点(lat,lng)在第i网格层级对应的列号,Cin表示地图上的点(lat,lng)在第i网格层级对应的行号,RiM表示第i网格层级划分的列数,CiN表示第i网格层级划分的行数。
这种方式虽然能简化网格码编码过程,但是每个网格码所需要的存储长度大大变长,使计算机所需存储空间变大。
请参照图2,本申请还公开了一种基于上述地图网格划分方法的地图要素表示方法,除上述网格划分方法内容外,所述地图要素表示方法还包括:
步骤S1根据上述地图网格划分方法以及各网格层级的编码规则,将地图上的海量要素数据的经纬度编码转换为对应的网格码;
步骤S2获取当前地图视窗左上点B和右下点C;
步骤S3将当前地图视窗左上点B和右下点C转换为对应的网格码,通过点B网格码和点C网格码,判断点B和点C在哪个同一瓦片内;
步骤S4将地图上的海量要素数据对应的网格码中,与点B和点C在同一瓦片内的数据集合作为当前视窗集合D;
步骤S5根据当前视窗集合D、左上点B和右下点C,对地图视窗进行渲染显示。
仅需判断出当前地图视窗左上点B和右下点C所在的同一瓦片,即可快速寻找到地图渲染所需要的当前视窗集合D,从而使地图渲染过程所需要的计算量少,计算速度快,不易出现卡顿的现象。
进一步的,所述方法还包括:
步骤S6监测到地图发生缩放、移动变化,获取变化后地图视窗左上点B′和右下点C′;
步骤S7将变化后地图视窗左上点B′和右下点C′转换为对应的网格码,通过点B′网格码和点C′网格码,判断点B′和点C′在哪个同一瓦片内;
步骤S8判断点B′和点C′所在同一瓦片与点B和点C所在同一瓦片是否相同,如果相同,则根据当前视窗集合D、左上点B′和右下点C′,对地图视窗进行显示;
如果不同,则将地图上的海量要素数据对应的网格码中,与点B′和点C′在同一瓦片内的数据集合作为变化后视窗集合D′;
根据变化后视窗集合D′、左上点B′和右下点C′,对地图视窗进行重新渲染显示。
当地图发生缩放或移动变化时,先判断变化后地图视窗左上点B′和右下点C′所在的同一瓦片,接下来判断点B′和点C′所在同一瓦片与点B和点C所在同一瓦片是否相同,如果相同,则不需要对当前地图进行重新渲染,只需要将当前视窗集合D结合左上点B′、右下点C′重新显示即可;如果不同,则计算出变化后视窗集合D′对地图重新渲染,判断点B′和点C′所在同一瓦片以及计算变化后视窗集合D′同样具有计算量少、计算速度快的优点,整体上使计算机在做地图渲染过程中不易卡顿,且数据清晰度好。
进一步的,所述步骤S1还包括:根据地图上的海量要素数据对应的网格码,建立地图上海量要素数据之间的索引关系,具体为:
在第1网格层级,判断地图上海量要素数据对应的网格码中,将第1网格层级对应的网格编码位相同的网格码分别归集到集合E、集合W中;
设j=2,3,…,18,在第j网格层级,判断地图上海量要素数据对应的网格码中,将从第1网格层级到第j网格层级对应的网格编码位都相同的归集到一个集合Z中,并将该集合Z建立与和其从第1网格层级到第j-1网格层级对应网格编码都相同的集合Z′的关联索引关系,其中Z′为Z的树索引,Z为Z′的一个叶子索引。
使用索引使各层级网格码具备层级联系关系,利于组织域管理,还可以大大加快海量地图要素数据的检索速度,并可以在查询的过程中,使用优化隐藏器,提高系统的性能。
具体举例为:参照图1,第1网格层级的2个瓦片对应的编码位上的值分别为E或者W,也就是W1值为E或者W;第2网格层级将第1网格层级的每个瓦片等分为4*4瓦片,如果以西半球W为树索引,其下关联第2网格层级中西半球对应的4*4=16个瓦片,也就第1网格层级西半球W树索引关联第2网格层级16个叶子索引,同样的第1网格层级东半球E树索引关联第2网格层级16个叶子索引;第3网格层级将第2网格层级的每个瓦片等分为8*8瓦片,则第2网格层级的每个瓦片关联第3网格层级的8*8=64个瓦片,如果以第2网格层级的瓦片作为树索引,则第2网格层级的每个树索引关联第三网格层级的64个叶子索引;各网格层级之间的索引关联以此类推,此处不再赘述。以点A举例,在第1网格层级中,与点A同在东半球的点归集到集合E中,在第2网格层级中,与点A同在将东半球E进行4*4划分后的第1行第0列的点,归集到E1集合中,E为E1的树索引,E1为E的一个叶子索引,在第3网格层级中,与点A同在将E1瓦片进行8*8划分后的第4行第7列的点,归集到E136集合中,E1为E136的树索引,E136为E1的一个叶子索引,往后以此类推,此处不再赘述。
进一步的,所述方法还包括:步骤S3中,通过点B网格码和点C网格码,判断点B和点C在哪个同一瓦片内,具体为:
判断点B网格码和点C网格码从第1网格层级编码位开始连续相同的网格层级编码位,则从第1网格层级编码位至连续相同的最后一网格层级编码位,对应的就是点B和点C所在同一瓦片的网格编码。
通过网格编码实现快速判断出点B和点C在哪个同一瓦片内,计算速度快。
同样的,判断点B′和点C′在哪个同一瓦片内,也是采用上述方法进行判断,速度快,计算量少,不易卡顿。
进一步的,在所述方法中,请参照图3,步骤S5还包括:
步骤S51监测到搜索地图要素渲染需求,预设搜索地图要素对应的散开展示层级;
步骤S52判断当前地图视窗的左上点B和右下点C所在同一瓦片所在的当前层级,是否大于或等于搜索地图要素对应的散开展示层级,若是,则搜索地图要素散开展示;若否,则搜索地图要素聚合展示。
根据用户需要输入的搜索地图要素,将当前地图视窗所在瓦片所在的当前层级与预设散开展示层级进行比较,判断是否需要散开展示还是聚合展示,以减少计算机前端压力。所述搜索地图要素是用户输入搜索词想要查看的地图要素,例如用户输入路灯、公交站点、井盖、摄像头、医院、学校等搜索词,对应地图显示与该搜索词相关的搜索地图要素。
具体的,步骤S52中,搜索地图要素聚合展示的具体方法为:
步骤S521根据地图行政区划,将当前视窗集合D、左上点B和右下点C之间的区域划分为不同的行政区块;
步骤S522判断当前层级中,每个行政区块上包含的搜索地图要素的数量,并显示。
按照地图行政区块展示用户输入的搜索地图要素的数量,符合用户需求。
综上所述,本发明提供的地图网格划分方法及基于该方法的地图要素显示方法,建立新的网格划分方法及新的网格编码规则,通过新的网格划分方法便于计算机进行整存整取计算,通过新的网格编码规则,方便将各层级网格码建立关联索引关系,也方便通过网格码找到地图要素在每个层级所在的瓦片位置,还方便判断地图视窗左上点和右下点所在同一瓦片及所对应的层级,方便判断每个层级各地图要素是否属于同一瓦片,网格码阅读性强,便于计算,计算机处理数据量少,不易卡顿,且地图渲染的速度快,清晰度好。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种地图网格划分方法,其特征在于,所述方法为:
将地球表面扩展为512°*256°,将地图分为18网格层级,其中第1网格层级将整个地球表面划分为2*1瓦片,用W或E表示;第2网格层级,将上一网格层级每个瓦片表面等分为4*4瓦片;第3~8网格层级,将上一网格层级每个瓦片表面等分为8*8瓦片,其中在第4网格层级将1°网格单元扩展为64′,第8网格层级将1′扩展为64″;第8网格层级以后的网格层级,将每个瓦片等分为2*2瓦片;
将地球上的点所处第1网格层级到第18网格层级瓦片的行号和列号分别进行编码后,按照从左到右的顺序排列。
2.根据权利要求1所述的地图网格划分方法,其特征在于,各网格层级经过网格划分后每个瓦片的宽度和长度相等,其以度为单位,第i网格层级瓦片单元的长度或宽度Δλi的计算公式为:
当i∈[1,2]时,Δλi=2^(8-2*(i-1));
当i∈[3,8]时,Δλi=2^(3*(4-i));
当i∈[9,18]时,Δλi=2^(-i-4);
其中,i表示网格层级数,Δλi表示第i网格层级瓦片单元宽度或长度对应的度数。
3.根据权利要求2所述的地图网格划分方法,其特征在于,计算地球上的点在每个网格层级所处瓦片的行号和列号,具体公式为:
已知地球上点的经纬度坐标为(lat,lng),计算点(lat,lng)在第i网格层级(i∈[2,3,…,18])的网格码行列号计算公式为:
Ci=(lat-xi-1)/Δλi;
Ri=(lng-yi-1)/Δλi;
其中,lat表示地球上点的纬度,lng表示地球上点的经度,Ci表示第i网格层级的行号,Ri表示第i网格层级的列号,xi-1表示第i-1网格层级的行定位角坐标,yi-1表示第i-1网格层级的列定位角坐标,Δλi表示第i网格层级瓦片单元宽度或者长度对应的度数;
其中,关于各网格层级的行定位角坐标、列定位角坐标,具体计算公式为:
第1网格层级的行定位角坐标为0°,第1网格层级的列定位角坐标为0°;
当2≤i≤17时,第i网格层级的行定位角坐标xi计算公式为xi=xi-1+Ci*Δλi;
第i网格层级的列定位角坐标yi计算公式为yi=yi-1+Ri*Δλi。
4.根据权利要求1所述的地图网格划分方法,其特征在于,所述方法还包括:
各网格层级的编码规则为:
步骤G1第1网格层级:使用E、W表示东西半球,编码第1位;
步骤G2第2网格层级:列号(0~3)、行号(0~3),做四进制转十七进制一位编码,使用1位(0~F)表示,编码第2位;
步骤G3第3~8网格层级:每个网格层级列号(0~7)、行号(0~7),得两位编码,使用2位(0~7)(0~7)表示,编码第3~14位;
步骤G4第9~18网格层级:每个网格层级得到列号(0~1)、行号(0~1),做二进制转十进制一位编码,使用1位(0~3)表示,编码第15~24位。
5.根据权利要求4所述的地图网格划分方法,其特征在于,根据各网格层级的编码规则,对地图上的点进行编码转换后,地图上的点(lat,lng)的网格码W(lat,lng)表示方法为:
W(lat,lng)=W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15W16W17W18;
用Wi表示第i网格层级的对应的网格编码位,i=1,2,…,18,则:
当i=1时,Wi=E,或者Wi=W;
当i=2时,Wi=数制转换一(RimCin);
当i∈[3,8]时,Wi=RimCin;
当i∈[9,18]时,Wi=数制转换二(RimCin);
其中,Rim=0,1,…,RiM-1;Cin=0,1,…,CiN-1;
Rim表示地图上的点(lat,lng)在第i网格层级对应的列号,Cin表示地图上的点(lat,lng)在第i网格层级对应的行号,RiM表示第i网格层级划分的列数,CiN表示第i网格层级划分的行数。
6.基于如权利要求1~5任一项所述的地图网格划分方法的地图要素表示方法,其特征在于,所述方法还包括:
步骤S1根据上述地图网格划分方法以及各网格层级的编码规则,将地图上的海量要素数据的经纬度编码转换为对应的网格码;
步骤S2获取当前地图视窗左上点B和右下点C;
步骤S3将当前地图视窗左上点B和右下点C转换为对应的网格码,通过点B网格码和点C网格码,判断点B和点C在哪个同一瓦片内;
步骤S4将地图上的海量要素数据对应的网格码中,与点B和点C在同一瓦片内的数据集合作为当前视窗集合D;
步骤S5根据当前视窗集合D、左上点B和右下点C,对地图视窗进行渲染显示。
7.根据权利要求6所述的地图要素表示方法,其特征在于,所述方法还包括:
步骤S6监测到地图发生缩放、移动变化,获取变化后地图视窗左上点B′和右下点C′;
步骤S7将变化后地图视窗左上点B′和右下点C′转换为对应的网格码,通过点B′网格码和点C′网格码,判断点B′和点C′在哪个同一瓦片内;
步骤S8判断点B′和点C′所在同一瓦片与点B和点C所在同一瓦片是否相同,如果相同,则根据当前视窗集合D、左上点B′和右下点C′,对地图视窗进行显示;
如果不同,则将地图上的海量要素数据对应的网格码中,与点B′和点C′在同一瓦片内的数据集合作为变化后视窗集合D′;
根据变化后视窗集合D′、左上点B′和右下点C′,对地图视窗进行重新渲染显示。
8.根据权利要求6所述的地图要素表示方法,其特征在于,所述步骤S1还包括:根据地图上的海量要素数据对应的网格码,建立地图上海量要素数据之间的索引关系,具体为:
在第1网格层级,判断地图上海量要素数据对应的网格码中,将第1网格层级对应的网格编码位相同的网格码分别归集到集合E、集合W中;
设j=2,3,…,18,在第j网格层级,判断地图上海量要素数据对应的网格码中,将从第1网格层级到第j网格层级对应的网格编码位都相同的归集到一个集合Z中,并将该集合Z建立与和其从第1网格层级到第j-1网格层级对应网格编码都相同的集合Z′的关联索引关系,其中Z′为Z的树索引,Z为Z′的一个叶子索引。
9.根据权利要求6所述的地图要素表示方法,其特征在于,所述步骤S3中,通过点B网格码和点C网格码,判断点B和点C在哪个同一瓦片内,具体为:
判断点B网格码和点C网格码从第1网格层级编码位开始连续相同的网格层级编码位,则从第1网格层级编码位至连续相同的最后一网格层级编码位,对应的就是点B和点C所在同一瓦片的网格编码。
10.根据权利要求6所述的地图要素表示方法,其特征在于,所述步骤S5还包括:
步骤S51监测到搜索地图要素渲染需求,预设搜索地图要素对应的散开展示层级;
步骤S52判断当前地图视窗的左上点B和右下点C所在同一瓦片所在的当前层级,是否大于或等于搜索地图要素对应的散开展示层级,若是,则搜索地图要素散开展示;若否,则搜索地图要素聚合展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310763030.7A CN116863089A (zh) | 2023-06-27 | 2023-06-27 | 地图网格划分方法及基于该方法的地图要素显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310763030.7A CN116863089A (zh) | 2023-06-27 | 2023-06-27 | 地图网格划分方法及基于该方法的地图要素显示方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116863089A true CN116863089A (zh) | 2023-10-10 |
Family
ID=88235038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310763030.7A Pending CN116863089A (zh) | 2023-06-27 | 2023-06-27 | 地图网格划分方法及基于该方法的地图要素显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116863089A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117437551A (zh) * | 2023-12-21 | 2024-01-23 | 绘见科技(深圳)有限公司 | 基于大空间视觉地图剖分与快速检索的定位方法和设备 |
-
2023
- 2023-06-27 CN CN202310763030.7A patent/CN116863089A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117437551A (zh) * | 2023-12-21 | 2024-01-23 | 绘见科技(深圳)有限公司 | 基于大空间视觉地图剖分与快速检索的定位方法和设备 |
CN117437551B (zh) * | 2023-12-21 | 2024-02-27 | 绘见科技(深圳)有限公司 | 基于大空间视觉地图剖分与快速检索的定位方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977179B (zh) | 一种分层的网格划分实现海量地物标记点聚散可视化方法 | |
US10416866B2 (en) | Representation of digital map styling properties across zoom levels | |
CN116863089A (zh) | 地图网格划分方法及基于该方法的地图要素显示方法 | |
WO2016095749A1 (zh) | 电子地图中查询空间对象和建立空间索引的方法及装置 | |
JP5712825B2 (ja) | 座標コード化装置、座標コード化方法、距離算出装置、距離算出方法、プログラム | |
CN103562917A (zh) | 用于可视化关系数据库的基于图的方法 | |
CN112685407A (zh) | 一种基于GeoSOT全球剖分网格编码的空间数据索引方法 | |
CN112287138A (zh) | 一种城市信息模型的组织调度方法、装置和设备 | |
CN110197035B (zh) | 一种航道水下地形变化分析系统及方法 | |
CN106991149B (zh) | 一种融合编码和多版本数据的海量空间对象存储方法 | |
CN113946700A (zh) | 一种时空索引构建方法、装置、计算机设备及存储介质 | |
Haining et al. | Designing and implementing software for spatial statistical analysis in a GIS environment | |
CN107357812A (zh) | 一种数据查询方法及装置 | |
CN108647332A (zh) | 一种基于全球网格的行政区划空间信息组织方法 | |
US20110012917A1 (en) | Dynamic generation of images to facilitate information visualization | |
WO2023065570A1 (zh) | 一种户型编码匹配方法及装置 | |
CN111446968B (zh) | 矢量空间数据多级压缩方法 | |
CN109885638B (zh) | 一种三维立体空间索引方法及系统 | |
CN110765298B (zh) | 矢量数据几何属性解耦的瓦片编码方法 | |
CN108345607B (zh) | 搜索方法和装置 | |
CN110989886B (zh) | 基于空间地图的三维空间网格选取方法及装置 | |
Zhou et al. | Efficient encoding and decoding algorithm for triangular discrete global grid based on Hybrid Transformation Strategy | |
Lai et al. | A spatial multi-scale integer coding method and its application to three-dimensional model organization | |
CA3101252A1 (en) | Improved geographic indexing | |
CN110609874B (zh) | 一种基于密度聚类算法的地址实体共指消解方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |