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

一种矢量数据动态可视化方法及系统

文献发布时间:2024-05-31 01:29:11


一种矢量数据动态可视化方法及系统

技术领域

本发明涉及数据可视化领域,尤其是涉及一种矢量数据动态可视化方法及系统。

背景技术

在地理信息应用中,地理矢量数据是非常重要的数据类型之一,随着Web GIS(一个交互式的、分布式的、动态的地理信息系统,是由多个主机、多个数据库的无线终端,并由客户机与服务器相连所组成的)技术的不断发展和应用场景的扩大,地理矢量数据的数据规模和复杂度在不断增加,矢量要素的业务属性会随着应用业务的变化发生动态改变。2018年7月后,全面使用2000国家大地坐标系(CGCS2000),国内地理数据处理和应用也需要在这个坐标系下进行,如何动态、高效地在Web端展现大规模CGCS2000矢量数据成为了一个亟待解决的问题。

现有解决方案一般是,使用开源GeoServer(迅速共享空间地理信息的系统软件)发布2000国家大地坐标系地图服务,并在浏览器前端通过OpenLayers(一个专为Web GIS客户端开发提供的JavaScript类库包,用于实现标准格式发布的地图数据访问)地图引擎加载展示,主要过程如下:

步骤一、安装GeoServer,并配置数据源,将CGCS2000的地图矢量数据导入PostgreSQL中,选择PG作为数据源并配置加载;步骤二、新建工作区,用于管理发布的地图服务;步骤三、创建一个样式,用于定义地图服务的样式和符号;步骤四、新建一个图层,将数据源和样式关联起来;步骤五、发布地图服务,并设置相关参数和权限,可以通过WMS(WebMap Service,是一种动态地图服务协议)或WMTS(Web Map Tile Service,一种基于瓦片的地图服务协议)协议访问该地图服务;步骤六、使用前端框架OpenLayers调用GeoServer发布的WMS或WMTS服务,在网页中展示地图;通过配置数据源、创建工作区、创建样式、创建图层、发布地图服务和在前端展示这些步骤,可以实现展现2000国家大地坐标系下的地图数据。

但是,使用GeoServer发布2000国家大地坐标系地图服务和应用展示时存在以下一些缺点:

在百万级矢量数据查询展示时,使用WMS或WMTS服务加载地图时出现严重延迟和卡顿的情况,用户体验差,无法达到预期效果;而且,GeoServer学习和配置复杂性较高,在2000国家大地坐标系切片配置和符号化配置时较为复杂,需要一定的技术知识和时间投入。

针对这种问题,本发明提供了一种矢量数据动态可视化方法及系统,以解决上述问题。

发明内容

本发明为了解决现有技术中存在的问题,创新提出了一种矢量数据动态可视化方法及系统,有效解决由于现有技术造成当地理矢量数据量很大时,查询展示容易出现延迟卡顿,且查询配置复杂的问题,有效地减小数据体积,提高传输效率,能够更快速地加载和显示地图内容,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,支持2000国家大地坐标系,而且提高了地理矢量数据配置查询的便利性。

本发明第一方面提供了一种矢量数据动态可视化方法,应用于服务端服务器,包括:

建立客户端浏览器与服务端服务器的通信连接,获取客户端浏览器发送的地图切片请求;所述地图的坐标系为2000国家大地坐标系;

根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;

根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;

如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;

根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;

根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示。

可选地,根据地图中地理矢量数据类型判断是否使用缓存具体为:判断地图中地理矢量数据类型是否为静态地理矢量数据,如果地图中地理矢量数据类型为静态地理矢量数据,地图中地理矢量数据使用缓存;如果地图中地理矢量数据类型为动态地理矢量数据,地图中地理矢量数据不使用缓存。

可选地,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围具体包括:

将当前地图切片的XY索引与单个地图切片的像素坐标相乘,得到当前地图切片左上角的像素坐标;

将当前地图切片左上角起点的像素坐标与地图切片像素坐标进行求和,获取当前地图切片右下角像素坐标;

将当前地图切片左上角像素坐标值、右下角像素坐标值与当前地图切片Z索引层级下的像素分辨率分别相除,得到当前地图切片左上角、右下角分别基于地图切片操作时原点的地理经纬度坐标;将当前地图切片左上角、右下角分别基于地图切片操作时原点的地理经纬度坐标,与地图切片操作默认起点与原点之间的偏移量进行加减运算,分别得到当前地图切片左上角、右下角的实际地理经纬度;

根据当前地图切片左上角、右下角的实际地理经纬度得到当前地图切片的地理经纬度范围。

进一步地,将当前地图切片的XY索引乘以单个地图切片的像素坐标,得到当前地图切片左上角的像素坐标具体为:

当前地图切片的X索引乘以单个地图切片的水平像素坐标,得到当前地图切片左上角的水平像素坐标;

当前地图切片的Y索引乘以单个地图切片的垂直像素坐标,得到当前地图切片左上角的垂直像素坐标。

可选地,根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片具体包括:

构建经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库;所述经纬度格网矢量数据mapLayer的坐标系为2000国家大地坐标系;

在PostgreSQL空间数据库中对经纬度格网矢量数据MapLayer的空间字段Geom创建GIST空间索引;

根据地图切片的经纬度范围创建经纬度Envelope对象,将创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,得到地理空间范围内的地理矢量结果数据集;

将地理矢量结果数据集转成二进制格式的MVT矢量瓦片。

可选地,根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示具体包括:

根据MVT矢量瓦片的渲染方式,判断MVT矢量瓦片在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示;

如果MVT矢量瓦片在客户端浏览器渲染,直接将MVT矢量瓦片结果返回客户端浏览器,分别进行加载、动态渲染和显示;

如果MVT矢量瓦片在服务端服务器渲染,则在服务端服务器的Java后台解析MVT矢量瓦片,并对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染。

进一步地,还包括:

判断渲染后的MVT矢量瓦片对应的图片是否需要通过服务端服务器的Java后台缓存,如果需要通过服务端服务器的Java后台缓存时,将渲染后的MVT矢量瓦片对应的图片写入本地缓存库中;如果不需要通过服务端服务器的Java后台缓存时,将渲染后的MVT矢量瓦片对应的图片按请求的格式转换、压缩,并以图片格式响应地图前端显示。

可选地,对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染具体为:

服务端服务器将返回的MVT矢量瓦片解析,得到图层的矢量数据,将解析后矢量数据每个属性字段的属性值区间划分为若干段,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合,所述地图符号样式支持自定义动态设置,并将渲染后的效果图转成图片结果。

进一步地,当矢量数据每个属性字段的属性值发生变化时,对应的地图符号渲染效果也随之动态发生变化。

本发明第二方面提供了一种矢量数据动态可视化系统,应用于服务端服务器,包括:

建立模块,建立客户端浏览器与服务端服务器的通信连接,获取客户端浏览器发送的地图切片请求;所述地图的坐标系为2000国家大地坐标系;

获取模块,根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;

判断模块,根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;

转换模块,如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;

生成模块,根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;

渲染模块,根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示。

本发明采用的技术方案包括以下技术效果:

1、本发明根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示,有效解决由于现有技术造成当地理矢量数据量很大时,查询展示容易出现延迟卡顿,且查询配置复杂的问题,有效地减小数据体积,提高传输效率,能够更快速地加载和显示地图内容,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,支持2000国家大地坐标系,而且提高了地理矢量数据配置查询的便利性。

2、本发明技术方案中在对地图切片的ZXY索引计算经纬度坐标,得到地图切片经纬度范围时,不仅考虑地图切片的ZXY索引,还结合地图切片自身的像素值,使得到的地图切片的经纬度范围的可靠性以及准确性更高。

3、本发明技术方案中构建经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库;在PostgreSQL空间数据库中对经纬度格网矢量数据MapLayer的空间字段Geom创建GIST空间索引;根据地图切片的经纬度范围创建经纬度Envelope对象,将创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,得到地理空间范围内的地理矢量结果数据集;将地理矢量结果数据集转成二进制格式的MVT矢量瓦片,通过矢量瓦片技术对数据进行压缩,减小数据体积,提高传输效率,而且,通过创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,更适合百万级地理矢量数据的匹配,使得地理矢量数据的匹配查询效速度更快,效率更高。

4、本发明技术方案中如果MVT矢量瓦片在客户端浏览器渲染,直接将MVT矢量瓦片结果返回客户端浏览器,分别进行加载、动态渲染和显示;如果MVT矢量瓦片在服务端服务器渲染,则在服务端服务器的Java后台解析MVT矢量瓦片,并对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,提高了地理矢量数据渲染的便利性以及灵活性。

5、本发明技术方案中服务端服务器将返回的MVT矢量瓦片解析,得到图层的矢量数据,将解析后矢量数据每个属性字段的属性值区间划分为若干段,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合,所述地图符号样式支持自定义动态设置,并将渲染后的效果图转成图片结果;根据地理矢量数据的属性值字段的变化动态渲染地图样式,每一种渲染唯一对应地理矢量数据不同字段的属性值区间之间的组合,并生成缓存图片,提高传输和响应速度。

6、本发明技术方案中对地图切片规则和地理矢量数据坐标系进行扩展,支持2000国家大地坐标系。

应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明方案中实施例一方法的一流程示意图;

图2为本发明方案中实施例一方法的另一流程示意图;

图3为本发明方案中实施例一方法中步骤S105的流程示意图;

图4为本发明方案中实施例一方法中步骤S107的流程示意图;

图5为本发明方案中实施例一方法中步骤S108的流程示意图;

图6为本发明方案中实施例二系统的结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例一

如图1-图2所示,本发明提供了一种矢量数据动态可视化方法,应用于服务端服务器,包括:

S101,建立客户端浏览器与服务端服务器的通信连接,获取客户端浏览器发送的地图切片请求;所述地图的坐标系为2000国家大地坐标系;

S102,根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;

S103,根据地图中地理矢量数据类型判断是否使用缓存,如果判断结果为是,则执行步骤S104;如果判断结果为否,则执行步骤105;

S104,判断在缓存中查询到对应地图切片是否存在,如果判断结果为是,则执行步骤S106;如果判断结果为否,则执行步骤S105;

S106,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;

S105,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;

S107,根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;

S108,根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示。

其中,在步骤S1中,建立客户端浏览器与服务端服务器的通信连接,通信连接的方式可以是无线通信连接,也可以是有线通信连接,可以根据实际情况灵活调整,本发明在此不做限制。

使用地图Web引擎,定义2000国家大地坐标系和配置层级参数,使用Leaflet(移动友好交互式地图的开源JavaScript库)作为显示引擎,使用Mapbox gl(是Leaflet的一个插件)扩展组件为前端提供矢量瓦片的加载显示功能。在Web端配置地图服务的请求接口地址,在查看地图时,客户端浏览器发起地图切片请求。

在步骤S102中,服务端服务器通过客户端浏览器的地图切片请求,地图切片请求中包括地图服务名称、地图中地理矢量数据类型及对应切片后的地图切片的ZXY索引(即Z、X、Y索引分别对应层级、行号、列号)、是否使用地图缓存等配置信息。

在步骤103中,根据地图中地理矢量数据类型判断是否使用缓存具体为:判断地图中地理矢量数据类型是否为静态地理矢量数据,如果地图中地理矢量数据类型为静态地理矢量数据,地图中地理矢量数据使用缓存;如果地图中地理矢量数据类型为动态地理矢量数据,地图中地理矢量数据不使用缓存。

在步骤S104、S106中,对于静态地理矢量数据,可使用缓存来提高地图Web访问速度。解析地图服务请求后,通过切片索引在缓存中查询对应ZXY结果,地图切片存在时进行格式转换和图片压缩,并将图片结果返回到前端显示。

在步骤S105、S107-S108中,其中,如图2-图3所示,步骤S105具体包括:

S1051,将当前地图切片的XY索引与单个地图切片的像素坐标相乘,得到当前地图切片左上角的像素坐标;

具体地,当前地图切片的X索引乘以单个地图切片的水平像素坐标,得到当前地图切片左上角的水平像素坐标;当前地图切片的Y索引乘以单个地图切片的垂直像素坐标,得到当前地图切片左上角的垂直像素坐标。即通过当前切片XY索引乘以单个切片的像素宽高,得到切片的像素坐标xy,默认得到当前地图切片左上角起点像素坐标xy。

S1052,将当前地图切片左上角起点的像素坐标与地图切片像素坐标进行求和,获取当前地图切片右下角像素坐标;

通过当前地图切片左上角像素坐标xy,然后再加上当前地图切片像素宽高,获取当前地图切片右下角像素坐标值x1y1。

S1053,将当前地图切片左上角像素坐标值、右下角像素坐标值与当前地图切片Z索引层级下的像素分辨率分别相除,得到当前地图切片左上角、右下角分别基于地图切片操作时原点的地理经纬度坐标;将当前地图切片左上角、右下角分别基于地图切片操作时原点的地理经纬度坐标,与地图切片操作默认起点与原点之间的偏移量进行加减运算,分别得到当前地图切片左上角、右下角的实际地理经纬度;

在不平移地图的情况下,将当前地图切片左上角像素坐标值(xy)、右下角像素坐标值(x1y1),分别除以当前Z层级下的像素分辨率,得到当前地图切片左上角、右下角分别基于地图切片操作时原点(0,0)的地理经纬度坐标。但在实际生产地图切片时,地图切图操作默认起点经纬度如果不在原点(0,0),需要对得到的地理经纬度加减对应偏移量得到实际地理经纬度lnglat。即,偏移量与地图切图操作默认起点经纬度与原点(0,0)之间的相对位置以及差值相对应。在此处地图不同层级像素比例尺支持自定义配置,如地图在15层级下比例尺自定义为21571.688777。通过以上计算,完成ZXY切片索引到[-180,180]、[-90,90]经纬度坐标lnglat计算。

S1054,根据当前地图切片左上角、右下角的实际地理经纬度得到当前地图切片的地理经纬度范围。

通过左上角和右下角的经纬度值得到地图切片的地理经纬度范围[x

如图4-图5所示,步骤S107具体包括:

S1071,构建经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库;经纬度格网矢量数据mapLayer的坐标系为2000国家大地坐标系;

通过步骤S105地图切片地理经纬度范围,对数据库图层中百万级矢量数据进行空间查询,并将查询结果转成二进制格式的矢量瓦片。具体实施方式为:使用GIS工具构建全国30s经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库。全国格网数据总量大于500万条,坐标系为2000国家大地坐标系,矢量数据属性中有多个业务属性字段,例如包括风级、温度、湿度、地面气压、降水量、空间数据。

S1072,在PostgreSQL空间数据库中对经纬度格网矢量数据MapLayer的空间字段Geom创建GIST空间索引;

S1073,根据地图切片的经纬度范围创建经纬度Envelope对象,将创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,得到地理空间范围内的地理矢量结果数据集;

在PostgreSQL空间数据库中对MapLayer的空间字段Geom创建GIST空间索引,通过地图切片的地理经纬度范围[x

S1074,将地理矢量结果数据集转成二进制格式的MVT矢量瓦片。

将地理矢量结果数据集转到平面坐标下,并将转换过后的地理矢量结果数据集,即对2000国家大地坐标系矢量地图转成矢量瓦片。

如图5所示,步骤S108具体包括:

S1081,根据MVT矢量瓦片的渲染方式,判断MVT矢量瓦片是否在客户端浏览器对MVT矢量瓦片进行动态渲染、显示;如果判断结果为是,则执行步骤S1082,如果判断结果为否,则执行步骤S1083;

在地图切片请求中配置信息可以包括MVT矢量瓦片的渲染方式,例如,是在客户端浏览器进行渲染(前端渲染),还是在服务端服务器渲染(后端渲染),根据地图切片请求中配置信息,可以判断MVT矢量瓦片是否在客户端浏览器对MVT矢量瓦片进行动态渲染、显示。

S1082,直接将MVT矢量瓦片结果返回客户端浏览器,分别进行加载、动态渲染和显示;

不需要服务端服务器渲染时,直接将矢量瓦片结果返回前端通过Mapbox gl加载、动态渲染和显示,地图样式在客户端更新。

S1083,则在服务端服务器的Java后台解析MVT矢量瓦片,并对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染。

具体地,服务端服务器将返回的MVT矢量瓦片解析,得到图层的矢量数据,将解析后矢量数据每个属性字段的属性值区间划分为若干段,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合。

服务端使用PBF依赖工具包将数据库返回的二进制矢量MVT矢量瓦片解析,得到图层的矢量数据,一般渲染方式是单一字段进行分段渲染处理,根据实际业务需要,此处新增了对单个地图要素多属性字段组合过滤及符号化,并支持点、线、面三种空间几何类型。以全国格网面状矢量数据为例,将解析后得到的降水量、风级、地面气压三个属性字段的每个属性值区间分为5(举例说明)段,再将三个属性分段组合,用不同的地图符号表示这三个字段的5个分段级别,即,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合,地图符号样式支持动态设置,属性选择和分段区间可自定义。在后台切片渲染时,每次根据数据库中属性字段的属性值进行渲染,当属性字段的属性值发生变化时,渲染效果也随之动态发生变化。最后将渲染后的效果图转成图片结果。通过支持对单个切片内的矢量要素进行聚类和统计,将单个地图切片的分析结果进行自定义展示,此处新增了对不同空间几何类型图层多字段自定义分段、组合及符号化的实现。

S1084,判断渲染后的MVT矢量瓦片对应的图片是否需要通过服务端服务器的Java后台缓存,如果判断结果为是,则执行步骤S1085;如果判断结果为否,则执行步骤S1086;

在地图切片请求中配置信息还可以包括渲染后的MVT矢量瓦片对应的图片缓存设置,例如,渲染后的MVT矢量瓦片对应的图片是否需要通过服务端服务器的Java后台缓存,根据地图切片请求中配置信息,可以判断渲染后的MVT矢量瓦片对应的图片是否需要通过服务端服务器的Java后台缓存。

S1085,将渲染后的MVT矢量瓦片对应的图片写入本地缓存库中;

通过Java后台缓存配置,启用缓存时,选择将渲染后的图片写入本地缓存库中。

S1086,将渲染后的MVT矢量瓦片对应的图片按请求的格式转换、压缩,并以图片格式响应地图前端显示。

将渲染后的MVT矢量瓦片对应的图片按请求的格式转换、压缩,并以图片格式响应地图前端显示。

在地图切片请求中配置信息还可以包括渲染后的MVT矢量瓦片对应的图片按请求的格式,例如,是bmp格式,还是jpg格式,等等。根据地图切片请求中配置信息,可以获取渲染后的MVT矢量瓦片对应的图片按请求的格式。

本发明根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示,有效解决由于现有技术造成当地理矢量数据量很大时,查询展示容易出现延迟卡顿,且查询配置复杂的问题,有效地减小数据体积,提高传输效率,能够更快速地加载和显示地图内容,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,支持2000国家大地坐标系,而且提高了地理矢量数据配置查询的便利性。

本发明技术方案中在对地图切片的ZXY索引计算经纬度坐标,得到地图切片经纬度范围时,不仅考虑地图切片的ZXY索引,还结合地图切片自身的像素值,使得到的地图切片的经纬度范围的可靠性以及准确性更高。

本发明技术方案中构建经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库;在PostgreSQL空间数据库中对经纬度格网矢量数据MapLayer的空间字段Geom创建GIST空间索引;根据地图切片的经纬度范围创建经纬度Envelope对象,将创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,得到地理空间范围内的地理矢量结果数据集;将地理矢量结果数据集转成二进制格式的MVT矢量瓦片,通过矢量瓦片技术对数据进行压缩,减小数据体积,提高传输效率,而且,通过创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,更适合百万级地理矢量数据的匹配,使得地理矢量数据的匹配查询效速度更快,效率更高。

本发明技术方案中如果MVT矢量瓦片在客户端浏览器渲染,直接将MVT矢量瓦片结果返回客户端浏览器,分别进行加载、动态渲染和显示;如果MVT矢量瓦片在服务端服务器渲染,则在服务端服务器的Java后台解析MVT矢量瓦片,并对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,提高了地理矢量数据渲染的便利性以及灵活性。

本发明技术方案中服务端服务器将返回的MVT矢量瓦片解析,得到图层的矢量数据,将解析后矢量数据每个属性字段的属性值区间划分为若干段,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合,所述地图符号样式支持自定义动态设置,并将渲染后的效果图转成图片结果;根据地理矢量数据的属性值字段的变化动态渲染地图样式,每一种渲染唯一对应地理矢量数据不同字段的属性值区间之间的组合,并生成缓存图片,提高传输和响应速度。

本发明技术方案中对地图切片规则和地理矢量数据坐标系进行扩展,支持2000国家大地坐标系。

实施例二

如图6所示,本发明技术方案还提供了一种矢量数据动态可视化系统,应用于服务端服务器,包括:

建立模块101,建立客户端浏览器与服务端服务器的通信连接,获取客户端浏览器发送的地图切片请求;所述地图的坐标系为2000国家大地坐标系;

获取模块102,根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;

判断模块103,根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;

转换模块104,如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;

生成模块105,根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;

渲染模块106,根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示。

本发明根据客户端浏览器发送的地图切片请求,获取地图服务名称、地图中地理矢量数据类型、切片后的地图切片的ZXY索引;根据地图中地理矢量数据类型判断是否使用缓存,如果使用缓存,在缓存中查询到对应地图切片存在时,对地图切片进行格式转换和图片压缩,并将图片结果返回到前端显示;如果不使用缓存,或,在缓存中查询到对应地图切片不存在时,对地图切片的ZXY索引转换为像素坐标系,再通过像素坐标计算经纬度坐标,得到地图切片经纬度范围;根据地图切片的经纬度范围生成二进制格式的MVT矢量瓦片;根据MVT矢量瓦片的渲染方式,在客户端浏览器或服务端服务器对MVT矢量瓦片进行动态渲染、显示,有效解决由于现有技术造成当地理矢量数据量很大时,查询展示容易出现延迟卡顿,且查询配置复杂的问题,有效地减小数据体积,提高传输效率,能够更快速地加载和显示地图内容,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,支持2000国家大地坐标系,而且提高了地理矢量数据配置查询的便利性。

本发明技术方案中在对地图切片的ZXY索引计算经纬度坐标,得到地图切片经纬度范围时,不仅考虑地图切片的ZXY索引,还结合地图切片自身的像素值,使得到的地图切片的经纬度范围的可靠性以及准确性更高。

本发明技术方案中构建经纬度格网矢量数据mapLayer,并导入PostgreSQL空间数据库;在PostgreSQL空间数据库中对经纬度格网矢量数据MapLayer的空间字段Geom创建GIST空间索引;根据地图切片的经纬度范围创建经纬度Envelope对象,将创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,得到地理空间范围内的地理矢量结果数据集;将地理矢量结果数据集转成二进制格式的MVT矢量瓦片,通过矢量瓦片技术对数据进行压缩,减小数据体积,提高传输效率,而且,通过创建经纬度Envelope对象与GIST空间索引进行空间筛选匹配,更适合百万级地理矢量数据的匹配,使得地理矢量数据的匹配查询效速度更快,效率更高。

本发明技术方案中如果MVT矢量瓦片在客户端浏览器渲染,直接将MVT矢量瓦片结果返回客户端浏览器,分别进行加载、动态渲染和显示;如果MVT矢量瓦片在服务端服务器渲染,则在服务端服务器的Java后台解析MVT矢量瓦片,并对MVT矢量瓦片中的多个属性字段分级、组合和符号化渲染,可以根据应用场景不同,支持对矢量瓦片前端渲染和后端渲染,提高了地理矢量数据渲染的便利性以及灵活性。

本发明技术方案中服务端服务器将返回的MVT矢量瓦片解析,得到图层的矢量数据,将解析后矢量数据每个属性字段的属性值区间划分为若干段,每一种地图符号用于对应表示解析后矢量数据不同字段的属性值区间之间的组合,所述地图符号样式支持自定义动态设置,并将渲染后的效果图转成图片结果;根据地理矢量数据的属性值字段的变化动态渲染地图样式,每一种渲染唯一对应地理矢量数据不同字段的属性值区间之间的组合,并生成缓存图片,提高传输和响应速度。

本发明技术方案中对地图切片规则和地理矢量数据坐标系进行扩展,支持2000国家大地坐标系。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

相关技术
  • 一种面向多源全球海洋大数据的动态可视化方法及系统
  • 一种油井生产动态监测数据的集中可视化展示方法
  • 矢量数据读取方法及系统、矢量数据可视化方法及系统
  • 矢量数据读取方法及系统、矢量数据可视化方法及系统
技术分类

06120116627283