掌桥专利:专业的专利平台
掌桥专利
首页

基于地图金字塔模型的矢量瓦片轻量化重采样方法

文献发布时间:2023-06-19 19:30:30


基于地图金字塔模型的矢量瓦片轻量化重采样方法

技术领域

本发明属于地理信息系统技术领域,特别涉及一种基于地图金字塔模型的矢量瓦片轻量化重采样方法。

背景技术

现阶段,电子地图瓦片主要使用两种方式,一种是传统的栅格瓦片,另外一种是近几年推出的矢量瓦片(Vector Tiles),前者是采用四叉树金字塔模型的分级方式,将地图切割成无数大小相等的矩形栅格图片,由这些矩形栅格图片按照一定规则拼接成不同层级的地图显示。金字塔模型如图1所示。

矢量瓦片类似栅格瓦片,是将矢量数据用多层次模型分割成矢量要素描述文件存储在服务器端,再到客户端根据指定样式进行渲染绘制地图,在单个矢量瓦片上存储着投影于一个矩形区域内的几何信息和属性信息。当客户端通过分布式网络获取矢量瓦片、地图标注字体、图标、样式文件等数据后,最终在客户端进行渲染输出地图。

虽然矢量瓦片也采用金字塔的方式进行存储数据,但是由于其默认网格数较高,以PBF为例,单个矢量瓦片的网格是4096*4096,所以在视网膜屏等设备上也显示地很清楚,而不会出现锯齿,同时这个网格数可以随时进行修改调整,以更精确的方式来记录几何位置信息从而适应不同屏幕的要求。

使用矢量瓦片地图来提供地图比栅格瓦片地图由更好的显示效果,互动性也强,实现二三维一体化,更新速度快,地图样式快速切换,占用空间少,无极缩放显示等特点。

当前的主流切片工具(如PostGIS、ArcGIS Pro,SuperMap,GeoServer等)在进行切片时会按照一定抽稀策略来对矢量数据的图形进行抽稀,以使其在金字塔不同层级能够在不影响视觉效果的情况下,对矢量数据的图形进行压缩,减小单个矢量瓦片的大小,更快速的传输和绘制。

当矢量数据的图形比较小且很密集的情况下,一个矢量瓦片范围内就会包含大量的矢量数据,虽然切片工具会对其图形进行抽稀,即便抽稀到极限(多边形图形保留3个点,线图形保留2个点,点图形不变),生成的矢量的体积也会很大,有时会达到几十兆的大小。而这些几何图形很小的数据绘制到地图上几乎是无法识别的(只占一个或几个平面像素),在矢量瓦片的生成、传输、绘制过程中消耗了大量的资源,反而降低了使用体验。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于地图金字塔模型的矢量瓦片轻量化重采样方法,本发明采用与矢量瓦片层级相关的动态重采样精度,对矢量瓦片范围内的空间记录进行重采样并对重采样结果的图形进行抽稀处理,以过滤掉在该层级用眼睛无法分辨的记录,以达到在不影响视觉效果的基础上对矢量瓦片进行轻量化处理,能够提高矢量瓦片生成、传输、绘制的效率,提升使用体验。

本发明的目的是通过以下技术方案来实现的:基于地图金字塔模型的矢量瓦片轻量化重采样方法,包括以下步骤:

S1、根据矢量瓦片所在的层级编号以及重采样倍率,计算重采样精度;

S2、根据重采样精度对与矢量瓦片范围相交的记录进行重采样;

S3、将重采样后的数据生成矢量瓦片文件。

所述步骤S1具体实现方法为:预设矢量瓦片的显示像素大小为256×256,z地图层级的像素地图边长计算公式为:

其中,pixelWidth为一个像素的地图边长,单位为米;R为地球半径,取值6378137米;z为层级编号;

对于点、线、面的几何类型分别采用不同的重采样精度,计算方式分别为:

(1)点的重采样精度为将矢量瓦片范围划分等分格网单边格网的数量,计算公式为:

cellCnt=2

其中,t为点的重采样的倍率,取值范围为[1,9];

(2)线的重采样精度为最短的线长,单位为米,计算公式为:

minLength=t×pixelWidth

其中,t为线的重采样的倍率,取值范围为大于或等于2;

(3)面的重采样精度为最小面的面积,单位为平方米,计算公式为:

minArea=t×pixelWidth

其中,t为面的重采样的倍率,取值范围为大于或等于2。

所述步骤S2具体实现方法为:

S21、计算矢量瓦片的平面范围:分别计算矢量瓦片的球面经纬度范围:

ln

lngMaX=[2

其中,x为矢量瓦片的列编号,y为矢量瓦片的行编号;lngMin、lngMax、latMin、latMax分别为矢量瓦片的经度最小值,经度最大值,纬度最小值,纬度最大值;由lngMin、lngMax、latMin、latMax围成的区域即为矢量瓦片的球面范围;

将球面坐标转换为平面坐标,得到矢量瓦片的平面范围:

其中,x、y为平面坐标;lng、lat为经度和纬度;

S22、分别进行点、线、面的重采样;

点的重采样策略为:将矢量瓦片的平面范围划分为等分的格网,对格网内的数据进行抽稀处理作为最终的结果;

线的重采样策略为:将采样精度作为查询条件,查询长度大于或等于该值的线记录,对查询到的记录的图形用矢量瓦片的范围进行裁剪,保留矢量瓦片范围内的部分,然后对保留的线图形进行抽稀作为最终的结果;

面的重采样策略为:将采样精度作为查询条件,查询面积大于等于该值的面记录,对查询到的记录的图形用矢量瓦片的范围进行裁剪,保留矢量瓦片范围内的部分,然后对保留的面图形进行抽稀作为最终的结果。

所述步骤S22中点的重采样策略的抽稀处理具体方法为:首先按照重采样精度将矢量瓦片范围划分为cellCnt×cellCnt数量的格网;然后将点按所在的格网进行分组,最后对在同一个格网内的所有点的坐标取平均值作为最终的点坐标,将第一条记录的属性作为点的属性;

格网的点位坐标计算公式为:

其中,x、y为最终的点位坐标;n为格网内的点总数;x

所述步骤S22中线的重采样策略的抽稀处理具体方法为:采用道格拉斯—普克算法,具体步骤如下:

a、对每一条折线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dMax;

b、用dMax与限差D相比:若dMax

c、若dMax≥D,保留dMax对应的坐标点,并以该点为界,把折线分为两部分;

d、对c拆分的两部分重复a~c的操作。

所述步骤S22中面的重采样策略的抽稀处理具体方法为:首先提取面的边线;然后采用道格拉斯—普克算法对边线进行抽稀;因为面的边线是闭合的,亦即首末节点坐标一样,所以将线的末节点的上一个节点作为算法分析的末节点;最后将抽稀后的结果进行闭合处理,用闭合的边线构建结果面,作为抽稀的最终结果。

本发明的有益效果是:本发明采用与矢量瓦片层级相关的动态重采样精度,对矢量瓦片范围内的空间记录进行重采样并对重采样结果的图形进行抽稀处理,以过滤掉在该层级用眼睛无法分辨的记录,以达到在不影响视觉效果的基础上对矢量瓦片进行轻量化处理,能够提高矢量瓦片生成、传输、绘制的效率,提升使用体验。

附图说明

图1为金字塔模型示意图;

图2为本发明的流程图;

图3为矢量瓦片格网划分示意图;

图4为矢量瓦片格网抽稀结果示意图;

图5为矢量瓦片范围裁剪矢量过程示意图;

图6为道格拉斯—普克算法处理过程示意图。

具体实施方式

下面结合附图进一步说明本发明的技术方案。

如图2所示,本发明的一种基于地图金字塔模型的矢量瓦片轻量化重采样方法,包括以下步骤:

S1、根据矢量瓦片所在的层级编号以及重采样倍率,计算重采样精度;具体实现方法为:预设矢量瓦片的显示像素大小为256×256,z地图层级的像素地图边长计算公式为:

其中,pixelWidth为一个像素的地图边长,单位为米;R为地球半径,取值6378137米;z为层级编号;

对于点、线、面的几何类型分别采用不同的重采样精度,计算方式分别为:

(1)点的重采样精度为将矢量瓦片范围划分等分格网单边格网的数量,计算公式为:

cellCnt=2

其中,t为点的重采样的倍率,取值范围为[1,9];

(2)线的重采样精度为最短的线长,单位为米,计算公式为:

minLength=t×pixelWidth

其中,t为线的重采样的倍率,取值范围为大于或等于2;

(3)面的重采样精度为最小面的面积,单位为平方米,计算公式为:

minArea=t×pixelWidth2

其中,t为面的重采样的倍率,取值范围为大于或等于2。

S2、根据重采样精度对与矢量瓦片范围相交的记录进行重采样;首先要根据矢量瓦片的编号计算矢量瓦片的空间范围,然后查询该空间范围内的矢量记录(相交方式,对线、面矢量使用重采样精度进行过滤),最后对查询结果记录的几何图形进行抽稀。具体实现方法为:

S21、计算矢量瓦片的平面范围:分别计算矢量瓦片的球面经纬度范围:

ln

lngMax=[2

其中,x为矢量瓦片的列编号,y为矢量瓦片的行编号;lngMin、lngMax、latMin、latMax分别为矢量瓦片的经度最小值,经度最大值,纬度最小值,纬度最大值;由lngMin、lngMax、latMin、latMax围成的区域即为矢量瓦片的球面范围;

将球面坐标转换为平面坐标,得到矢量瓦片的平面范围:

其中,x、y为平面坐标;lng、lat为经度和纬度;

通过以上两部分计算即可得到矢量瓦片的平面空间范围(矩形),长度计量单位为米。

S22、分别进行点、线、面的重采样;

点的重采样策略为:将矢量瓦片的平面范围划分为等分的格网,对格网内的数据进行抽稀处理作为最终的结果;

点的重采样策略的抽稀处理具体方法为:首先按照重采样精度将矢量瓦片范围划分为cellCnt×cellCnt数量的格网,如图3所示;然后将点按所在的格网进行分组,最后对在同一个格网内的所有点的坐标取平均值作为最终的点坐标,将第一条记录的属性作为点的属性,结果如图4所示;

格网的点位坐标计算公式为:

其中,x、y为最终的点位坐标;n为格网内的点总数;x

采用格网内所有点位的坐标平均值作为最终的点位坐标而不是格网的中心点坐标作为最终的点位坐标,可使抽稀的结果呈现一种不规则分布的态势,效果更贴近实际点位分布,也更自然。

线的重采样策略为:将采样精度作为查询条件,查询长度大于或等于该值的线记录,对查询到的记录的图形用矢量瓦片的范围进行裁剪,保留矢量瓦片范围内的部分,如图5所示,然后对保留的线图形进行抽稀作为最终的结果;

线的重采样策略的抽稀处理具体方法为:采用道格拉斯—普克(Douglas——Peukcer)算法,Douglas——Peukcer算法由D.Douglas和T.Peueker于1973年提出,简称D——P算法,是目前公认的线状要素化简经典算法。它的优点是具有平移和旋转不变性,给定曲线与阈值后,抽样结果一定。处理过程如图6所示,具体步骤如下:

a、对每一条折线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dMax;

b、用dMax与限差D相比:若dMax

c、若dMax≥D,保留dMax对应的坐标点,并以该点为界,把折线分为两部分;

d、对c拆分的两部分重复a~c的操作。

面的重采样策略为:将采样精度作为查询条件,查询面积大于等于该值的面记录,对查询到的记录的图形用矢量瓦片的范围进行裁剪,保留矢量瓦片范围内的部分,然后对保留的面图形进行抽稀作为最终的结果。

面的重采样策略的抽稀处理具体方法为:首先提取面的边线;然后采用道格拉斯—普克算法对边线进行抽稀;因为面的边线是闭合的,亦即首末节点坐标一样,所以将线的末节点的上一个节点作为算法分析的末节点;最后将抽稀后的结果进行闭合处理(在线的末尾添加首点作为末点),用闭合的边线构建结果面,作为抽稀的最终结果。

S3、将重采样后的数据生成矢量瓦片文件。本发明采用Mapbox的矢量瓦片标准,步骤S2处理的矢量成果采用Google Protocol Buffers进行编码,生成矢量瓦片文件。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

相关技术
  • 一种矢量地图数据发布为矢量瓦片地图服务的方法和系统
  • 一种瓦片金字塔模型的建立方法及瓦片读取方法
技术分类

06120115938204