CN113658288B - 一种多边形数据矢量切片生成及显示的方法 - Google Patents
一种多边形数据矢量切片生成及显示的方法 Download PDFInfo
- Publication number
- CN113658288B CN113658288B CN202110848029.5A CN202110848029A CN113658288B CN 113658288 B CN113658288 B CN 113658288B CN 202110848029 A CN202110848029 A CN 202110848029A CN 113658288 B CN113658288 B CN 113658288B
- Authority
- CN
- China
- Prior art keywords
- slice
- resolution
- coordinates
- generating
- origin
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims description 5
- 206010019233 Headaches Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 231100000869 headache Toxicity 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明揭示了一种多边形数据矢量切片生成及显示的方法,包括如下步骤:S1,确定切片原点;S2,采用256*256像素切片范围确定切片行列;S3,循环上述切片行列;S4,根据所述第二空间范围,采用GIS空间搜索获取与这个第二空间范围相交的多边形数据,进行第一抽稀;S5,计算得出多边形数据的所有节点坐标(x,y)对应到切片上的坐标值(c,r);S6,以第一次得出的坐标作为标准,后续得出坐标与之进行比较,若完全一致,则跳过,若不一致则将坐标添加;S7,将得到的坐标存成切片文件,并按照相应的目录进行存储;S8,根据切片文件进行图形绘制。本发明通过对像素的拓宽,实现了无需对相邻边线进行处理,提高了切片在浏览器端的显示效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种多边形数据矢量切片生成及显示的方法。
背景技术
空间地理数据是指与地理位置相关的或包含地理信息的数据。在地理信息领域,用矢量数据(坐标和其他数据组合的数据结构)抽象表达真实世界中的点、线、面状地理要素。
现有技术中对于地理信息具有不同的坐标系,通常绝大多数矢量瓦片切割工具是基于Web墨卡托坐标系实现的,并只能应用于该坐标系的地图中,但是Web墨卡托坐标系可能与一些国家或地区常用的坐标系不兼容或精度不同(比如我国使用的CGCS2000坐标系),无法满足任意坐标系的地图应用当前方法主要利用PS相关软件修复,相关方法需要依赖庞大的人工手动去除,存在工作量大,花费巨大等问题,并且人工去除可以出现偏差,导致处理后的图像无法使用。进一步地,有数据表明当今电商公司在图修复美工方面花费数额巨大,这就成为了很多老板比较头疼的问题。
电子地图通常采用切片的形式来显示,以提高地图显示效率,切片的类型有两种:一种是图片类型,另一种是矢量类型。矢量类型切片可以保留数据的空间信息,方便在显示时对其符号进行修改。
因此需在现有的基础上提供一种多边形数据矢量切片生成及显示的方法,提升多边形数据矢量切片的生成及显示效率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种多边形数据矢量切片生成及显示的方法,通过对范围的像素拓宽,以实现无需对向量边进行处理,提高切片在浏览器端的显示效率。
为实现上述目的,本发明提出如下技术方案:一种多边形数据矢量切片生成及显示的方法,其包括如下步骤:
S1,确定切片原点;
S2,采用256*256像素切片范围确定切片行列;
S3,循环上述切片行列,从最小行到最大行及最小列到最大列进行遍历,每一个行列形成一个第一空间范围,所述第一空间范围在当前基础上对上下左右各再拓宽2个像素以形成第二空间范围;
S4,根据所述第二空间范围,采用GIS空间搜索获取与这个第二空间范围相交的多边形数据,进行第一抽稀;
S5,计算得出多边形数据的所有节点坐标(x,y)对应到切片上的坐标值(c,r);
S6,进行第二抽稀,以第一次得出的坐标作为标准,后续得出坐标与之进行比较,若完全一致,则跳过,若不一致则将坐标添加;
S7,将得到的坐标存成切片文件,并按照相应的目录进行存储;
S8,根据切片文件进行图形绘制。
优选地,在所述S1中,切片统一采用256*256像素大小,根据多边形数据的坐标系,确定切片的原点。
优选地,在所述S2中,计算行列的公式为:
最小行:minRow = (int)(Math.Floor((Xmin - OriginX) / (256*Resolution)));
最小列:minCol= (int)(Math.Floor((Ymin- OriginY) / (256*Resolution)));
最大行:maxRow = (int)(Math.Floor((Xmax- OriginX) / (256*Resolution)));最大列:maxCol= (int)(Math.Floor((Ymax- OriginY) / (256*Resolution)))。
优选地,所述S3中,所述第二空间范围的计算公式为:
minx = currentCol* Resolution* 256 + OriginX -2*Resolution;
maxx = (currentCol+ 1) * Resolution* 256 + OriginX +2*Resolution;
miny = currentRow* Resolution* 256 + OriginY -2*Resolution;
maxy = (currentRow+ 1) * Resolution* 256 + OriginY+2*Resolution。
优选地,在所述S4,所述第一抽稀采用道格拉斯一普客算法,第一抽稀后采用几何相交与第二空间范围相交部分的多边形。
优选地,在所述S5中,坐标(c,r)的计算公式为:
c = (int)(Math.Round((x - OriginX - Resolution* 256 * currentCol) /Resolution));
r = 256 - (int)(Math.Round((y - OriginY - Resolution* 256 *currentRow) / Resolution));所述currentCol和currentRow为当前切片的行列号。
优选地,在所述S6中,进行第二次抽稀,得到不变形,文件小的便于 传输的切片文件。
优选地,在所述S7中,切片文件以json格式进行存储。
优选地,在所述S8中,采用canvas进行绘制,从最小行到最大行及最小列到最大列进行遍历创建256*256大小的canvas,解析对应的json文件并绘制到canvas中。
本发明的有益效果是:
1、本发明的多边形数据矢量切片生成及显示的方法,通过对像素的拓宽,实现了无需对相邻边线进行处理,提高了切片在浏览器端的显示效率。
2、本发明的多边形数据矢量切片生成及显示的方法,提升多边形矢量数据的渲染效率,支持了海量多边形矢量数据在浏览器端时行展示。
3、本发明通过两次不变形抽稀,得到了文件小便于网络传输的切片文件。
附图说明
图1是本发明的一种多边形数据矢量切片生成及显示的方法的流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种多边形数据矢量切片生成及显示的方法,通过对像素的拓宽,以实现无需对相邻边线进行处理,提高了切片在浏览器端的显示效率。
结合图1所示,本发明所揭示多边形数据矢量切片生成及显示的方法,包括如下步骤:
S1,确定切片原点;
S2,根据切片范围确定切片行列;
S3,循环上述切片行列,从最小行到最大行及最小列到最大列进行遍历,每一个行列形成一个第一空间范围,所述第一空间范围在当前基础上对上下左右各再拓宽2个像素以形成第二空间范围;
S4,根据所述第二空间范围,采用GIS(地理信息系统)空间搜索获取与这个第二空间范围相交的多边形数据,进行第一抽稀;
S5,计算得出多边形数据的所有接点坐标(x,y)对应到切片上的坐标值(c,r);
S6,进行第二抽稀,以第一次得出的坐标作为标准,后续得出坐标与之进行比较,若完全一致,则跳过,若不一致则将坐标添加;
S7,将得到的坐标存成切片文件,并按照相应的目录进行存储;
S8,根据切片文件进行图形绘制。
具体地,所述S1中,切片统一采用256*256像素大小,根据多边形数据的坐标系,确定切片的原点(OriginX,OriginY),根据切片级别确定切片一个像素对应地图的大小像素。所述S2中,根据S1中的切片范围来确定切片的行列,切片的范围为(Xmin,Ymin,Xmax,Ymax),得到切片的行列的公式为:
最小行: minRow = (int)(Math.Floor((Xmin - OriginX) / (256*Resolution)));
最小列:minCol= (int)(Math.Floor((Ymin- OriginY) / (256*Resolution)));
最大行: maxRow = (int)(Math.Floor((Xmax- OriginX) / (256*Resolution)));
最大列: maxCol= (int)(Math.Floor((Ymax- OriginY) / (256*Resolution)))。
所述S3中,所述第二空间范围相对于第一范围空间扩大了几个像素,从而扩大了范围,所述第二空间范围的计算公式为:
minx = currentCol* Resolution* 256 + OriginX -2*Resolution;
maxx = (currentCol+ 1) * Resolution* 256 + OriginX +2*Resolution;
miny = currentRow* Resolution* 256 + OriginY -2*Resolution;
maxy = (currentRow+ 1) * Resolution* 256 + OriginY+2*Resolution;
所述S4中,所述第一抽稀采用道格拉斯一普客算法,第一抽稀后采用几何相交运算获得与第二空间范围相交部分的多边形。
所述S5中,通过S4得到的多边形通过公式计算得到多边形所有节点坐标(x,y)对应到切片上的坐标值(c,r),公式为:c = (int)(Math.Round((x - OriginX -Resolution* 256 * currentCol) / Resolution));
r = 256 - (int)(Math.Round((y - OriginY - Resolution* 256 *currentRow) / Resolution));currentCol、currentRow代表当前切片的行列;由于在S3中将第二范围在上下左右各拓宽了2各像素,则计算得到的c,r值的范围为-2-257。
所述S6中,进行第二次抽稀,得到不变形,文件小便于传输的切片文件,对坐标进行比较,若有出现不在256*256范围内的坐标则不记录,防止了在两个范围交界处出现坐标记录,从而导致在后期的绘制中,出现将一个多边形分割成数个区域,在相邻的两个第一空间范围上出现分割线,进而出现一个多边形的中间出现分割线,无法保证绘制的正确性。
所述S7中,切片文件以json格式进行存储,并按照相应的目录进行存储。所述S8中,解析对应行列的json文件并进行canvas(画布)绘制,从最小行到最大行到最小列到最大列进行遍历创建256*256大小的像素进行canvas绘制,自动隐藏了小于0和大于255的节点边线,实现了无需对相邻边线进行处理,在不影响切片生成效率前提下,提高切片在浏览器端的显示效率。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (7)
1.一种多边形数据矢量切片生成及显示的方法,其特征在于,包括如下步骤:
S1,确定切片原点;
S2,采用256*256像素切片范围确定切片行列,其中,计算行列的公式为:
最小行:minRow = (int)(Math.Floor((Xmin - OriginX) / (256*Resolution)));
最小列:minCol= (int)(Math.Floor((Ymin-OriginY) / (256*Resolution)));
最大行:maxRow = (int)(Math.Floor((Xmax- OriginX) / (256*Resolution)));最大列:maxCol= (int)(Math.Floor((Ymax-OriginY) / (256*Resolution)));
S3,循环上述切片行列,从最小行到最大行及最小列到最大列进行遍历,每一个行列形成一个第一空间范围,所述第一空间范围在当前基础上对上下左右各再拓宽2个像素以形成第二空间范围,其中,所述第二空间范围的计算公式为:
minx = currentCol* Resolution* 256 + OriginX -2*Resolution;
maxx = (currentCol+ 1) * Resolution* 256 + OriginX +2*Resolution;
miny = currentRow* Resolution* 256 + OriginY -2*Resolution;
maxy = (currentRow+ 1) * Resolution* 256 + OriginY+2*Resolution;
S4,根据所述第二空间范围,采用GIS空间搜索获取与这个第二空间范围相交的多边形数据,进行第一抽稀;
S5,计算得出多边形数据的所有节点坐标(x,y)对应到切片上的坐标(c,r);
S6,进行第二抽稀,以第一次得出的坐标作为标准,后续得出坐标与之进行比较,若完全一致,则跳过,若不一致则将坐标添加;
S7,将得到的坐标存成切片文件,并按照相应的目录进行存储;
S8,根据切片文件进行图形绘制。
2.根据权利要求1所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S1中,切片统一采用256*256像素大小,根据多边形数据的坐标系,确定切片的原点。
3.根据权利要求1所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S4中,所述第一抽稀采用道格拉斯一普客算法,第一抽稀后采用几何相交与第二空间范围相交部分的多边形。
4.根据权利要求1所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S5中,坐标(c,r)的计算公式为:
c = (int)(Math.Round((x - OriginX - Resolution* 256 * currentCol) /Resolution));
r = 256 - (int)(Math.Round((y - OriginY - Resolution* 256 * currentRow) /Resolution)),其中;所述currentCol为当前切片的列号,所述currentRow为当前切片的行号。
5.根据权利要求1所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S6中,进行第二次抽稀,得到不变形,文件小的便于 传输的切片文件。
6.根据权利要求5所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S7中,切片文件以json格式进行存储。
7.根据权利要求6所述的多边形数据矢量切片生成及显示的方法,其特征在于,在所述S8中,采用canvas进行绘制,从最小行到最大行及最小列到最大列进行遍历创建256*256大小的canvas,解析对应的json文件并绘制到canvas中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110848029.5A CN113658288B (zh) | 2021-07-27 | 2021-07-27 | 一种多边形数据矢量切片生成及显示的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110848029.5A CN113658288B (zh) | 2021-07-27 | 2021-07-27 | 一种多边形数据矢量切片生成及显示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113658288A CN113658288A (zh) | 2021-11-16 |
CN113658288B true CN113658288B (zh) | 2024-03-08 |
Family
ID=78490660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110848029.5A Active CN113658288B (zh) | 2021-07-27 | 2021-07-27 | 一种多边形数据矢量切片生成及显示的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113658288B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795939B (zh) * | 2023-06-19 | 2024-04-05 | 重庆市规划和自然资源信息中心 | 一种基于geotools工具实现地理数据修复的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597900A (zh) * | 2019-09-19 | 2019-12-20 | 浪潮软件股份有限公司 | 一种gdb数据实时按需生成矢量切片的方法 |
CN111858793A (zh) * | 2020-06-09 | 2020-10-30 | 北京百度网讯科技有限公司 | 地图道路标注处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322556B (zh) * | 2019-04-29 | 2022-06-03 | 武汉大学 | 一种基于边界裁剪的高速高精度矢栅叠置分析方法 |
-
2021
- 2021-07-27 CN CN202110848029.5A patent/CN113658288B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597900A (zh) * | 2019-09-19 | 2019-12-20 | 浪潮软件股份有限公司 | 一种gdb数据实时按需生成矢量切片的方法 |
CN111858793A (zh) * | 2020-06-09 | 2020-10-30 | 北京百度网讯科技有限公司 | 地图道路标注处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
A Skeleton Extraction Framework Based on Inner-product and Border Gap;Zeng Pei-feng 等;Journal of Donghua University (English Edition);20121001;全文 * |
基于Mapbox矢量切片在线配图平台的设计与实现;翁世杰;朱雪坚;黄婷;任福;;地理信息世界;20180825(第04期);全文 * |
面向矢量瓦片的高效空间数据处理技术的研究与实现;李瀚;中国优秀硕士学位论文全文数据库 基础科学辑;20200215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113658288A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110956673A (zh) | 一种地图绘制方法及装置 | |
CN111399507B (zh) | 确定栅格地图中边界线的方法、划分栅格地图的方法 | |
CN103605716B (zh) | 用于网页页面点击展现的数据处理方法和装置 | |
CN108074237B (zh) | 图像清晰度检测方法、装置、存储介质及电子设备 | |
CN109584366B (zh) | 一种地形渲染方法、装置、设备及可读存储介质 | |
CN111192352B (zh) | 地图的渲染方法、装置、计算机设备和存储介质 | |
CN107085505A (zh) | 一种cdr文件自动处理和自动比对方法及系统 | |
CN113658288B (zh) | 一种多边形数据矢量切片生成及显示的方法 | |
CN107103225A (zh) | 一种生成图形验证码的方法 | |
CN114387386A (zh) | 一种基于三维点阵渲染的快速建模方法及系统 | |
CN115439609A (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
CN110851558A (zh) | 一种地方坐标系地图通用加载方法 | |
CN110110028B (zh) | 一种面向ogc标准按自定义区域显示地图的方法及系统 | |
CN109493331B (zh) | 一种基于并行计算算法的两景图像重叠区域快速获取方法 | |
EP0881598B1 (en) | Method for filling a polygon and image processing system | |
CN111492341B (zh) | 确定拼接显示屏的偏移距离的方法以及相关的装置 | |
CN112115226B (zh) | 地图渲染方法和地图渲染装置 | |
JP2010515131A (ja) | ベクトルグラフィックをラスター化するプロセスにおいて境界を発生させるための方法およびシステム、ならびに、システムを製造するための方法 | |
CN113936137A (zh) | 一种去除图像型文本行检测区域重叠的方法、系统及存储介质 | |
CN109636874B (zh) | 一种三维模型透视投影方法、系统及相关装置 | |
CN105741335A (zh) | 一种基于分块组织的多层次兵棋地图快速绘制方法 | |
JP2009146150A (ja) | 特徴位置検出方法及び特徴位置検出装置 | |
CN113096217B (zh) | 图片生成方法、装置、电子设备以及存储介质 | |
CN102074004B (zh) | 空间实体遮挡类型的判定方法及装置 | |
CN113741835B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |