一种扩展GeoServer发布自定义瓦片WMS服务的实现方法与流程

文档序号:11216443阅读:1446来源:国知局
一种扩展GeoServer发布自定义瓦片WMS服务的实现方法与流程

本发明属于智能电力gis技术领域,具体涉及一种扩展geoserver发布自定义瓦片wms服务的实现方法,能够满足电力系统中展示多类型、更高分辨率、更新时效性地理底图的需求。



背景技术:

随着配电、用电项目的开展,低压设备的持续录入,电力gis对项目所在区域的地图精度和详细程度都提出了更高的要求。web系统向面向服务的体系架构发展,gis也逐步以服务的方式提供空间数据及空间功能的服务,在web环境下展示更高分辨率的影像地图数据所需要的费用和空间处理资源更大,需要瓦片化、缓存、索引优化等机制来实现以轻量级、服务化的方式提供电力gis服务。



技术实现要素:

针对上述问题,本发明提出一种扩展geoserver发布自定义瓦片wms服务的实现方法,对不同类型的自定义瓦片数据源以遵循ogc规范的wms服务的方式提供给电力业务系统,实现地图服务与业务系统的松耦合,满足电力gis对多类型、高分辨率影像地图数据的展示需求。

实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

一种扩展geoserver发布自定义瓦片wms服务的实现方法,包括以下步骤:

s1:预下载不同比例尺下的地图瓦片,根据设定的瓦片切分规则、瓦片命名规则和组织规则存储在对应的自定义文件夹中,以形成自定义瓦片数据源;

s2:在自定义文件夹中建立用于记录位于其内的地图瓦片的地图参数信息的配置文件;

s3:在geoserver的数据目录配置与自定义瓦片数据源对应的图层,用于存储自定义瓦片数据源信息文件;

s4:根据接收到的获取网络地图getmap请求,首先利用自定义瓦片数据源信息解析类解析自定义瓦片数据源信息文件,然后利用自定义瓦片读取类定位到需要读取的自定义瓦片数据源;最后利用自定义瓦片特征类解析出地图瓦片的地图参数信息,并传送给自定义瓦片读取类;

s5:自定义瓦片读取类根据接收到的地图参数信息、瓦片切片规则和瓦片命名规则调用相应的索引号计算方法,响应获取网络地图getmap请求,返回所需的地图瓦片。

进一步地,所述自定义瓦片数据源是一组具有同样的自定义瓦片切分规则、瓦片命名规则和组织规则的地图瓦片文件,其中,所述的组织规则为各地图瓦片的组合顺序。

进一步地,所述自定义瓦片数据源信息文件包括:用于定义地图瓦片基本描述信息的info.xml文件、用于定义地图瓦片存储路径的tiledata.its文件和用于定义地图瓦片坐标系及投影信息的tiledata.prj文件。

进一步地,所述地图参数信息包括:该组地图瓦片所在全球地图的坐标范围、初始比例尺级别下全球范围对应的瓦片行列数、最小和最大比例尺级别、瓦片像素大小及扩展信息,所述扩展信息包括瓦片类型名称信息,用于当出现两组或多组不同类型的地图瓦片数据时,利用不同的瓦片类型名称区别开。

进一步地,所述网络地图getmap请求中包括:图层名称、请求地理坐标范围、像素大小、请求坐标系信息。

进一步地,所述步骤s4中具体为:利用自定义瓦片数据源信息解析类读取info.xml文件、tiledata.its文件、tiledata.prj文件中地图瓦片基本描述信息、地图瓦片坐标系及投影信息、地图瓦片存储路径,读取类根据地图瓦片存储路径信息,定位到需要读取的自定义瓦片数据源;由自定义瓦片特征类解析对应的自定义文件夹中的地图参数信息的配置文件,解析出地图瓦片的地图参数信息,并传送给自定义瓦片读取类。

进一步地,所述步骤s5具体为:自定义瓦片读取类依据接收到的地图参数信息、自定义切片规则和瓦片命名规则调用相应的索引号计算方法,得到地理坐标和瓦片索引号之间的换算关系以及瓦片数据各级比例尺的像素分辨率;自定义瓦片读取类依据接收到的网络地图getmap请求中的参数,将网络地图getmap请求中的在请求坐标系下请求地理坐标范围转换为tiledata.prj文件中的地图瓦片坐标系的地理坐标范围,并根据网络地图getmap请求中的地理范围、几何像素范围计算理论上的瓦片像素分辨率,进而与瓦片数据各级比例尺的像素分辨率进行比较,取最接近的瓦片数据比例尺为显示比例尺,根据该比例尺分辨率和几何像素范围计算得到新的地理坐标范围,使用该显示比例尺和地理坐标范围计算瓦片索引号,得到瓦片文件。

本发明的有益效果:

本发明解决了电力webgis显示更高分辨率、数据量更大的地理底图的要求,通过预缓存网络地图瓦片,扩展webgis服务端支持以wms服务的方式对自定义瓦片数据进行访问,减少对在线商用地图api的依赖,改善了电力gis的展示效率,提高了电力gis的用户体验。

附图说明

图1为扩展geoserver发布自定义瓦片wms服务的框架图;

图2为配置和解析自定义地图瓦片、返回wms获取网络地图请求所需地图瓦片的流程图;

图3为计算所需瓦片索引号的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图对本发明的应用原理作详细的描述。

如图1-3所示,一种扩展geoserver发布自定义瓦片wms服务的实现方法,包括以下步骤:

s1:预下载不同比例尺下的地图瓦片,根据设定的瓦片切分规则、瓦片命名规则和组织规则存储在对应的自定义文件夹中,以形成自定义瓦片数据源;

所述自定义瓦片数据源是一组具有同样的自定义瓦片切分规则、瓦片命名规则和组织规则的地图图片文件,其中,所述的组织规则为各地图瓦片的组合顺序;

s2:在自定义文件夹中建立用于记录位于其内的地图瓦片的地图参数信息的配置文件;

所述地图参数信息包括:该组地图瓦片所在全球地图的坐标范围、初始比例尺级别下全球范围对应的瓦片行列数、最小和最大比例尺级别、瓦片像素大小及扩展信息,所述扩展信息包括瓦片类型名称信息(比如:google、worldwind),用于当出现两组或多组不同类型的地图瓦片数据时,利用不同的瓦片类型名称区别开。

s3:在geoserver的数据目录配置与各自定义瓦片数据源对应的图层,用于存储自定义瓦片数据源信息文件;

所述自定义瓦片数据源信息文件包括:用于定义地图瓦片基本描述信息的info.xml文件、用于定义地图瓦片存储路径的tiledata.its文件和用于定义地图瓦片坐标系及投影信息的tiledata.prj文件。

s4:根据接收到的获取网络地图getmap请求,首先利用自定义瓦片数据源信息解析类解析自定义瓦片数据源信息文件,然后利用自定义瓦片读取类定位到需要读取的自定义瓦片数据源;最后利用自定义瓦片特征类解析出地图瓦片的地图参数信息,并传送给自定义瓦片读取类;

所述步骤s4中具体为:利用自定义瓦片数据源信息解析类读取info.xml文件、tiledata.its文件、tiledata.prj文件中地图瓦片基本描述信息、地图瓦片坐标系及投影信息、地图瓦片存储路径,读取类根据地图瓦片存储路径信息,定位到需要读取的自定义瓦片数据源;由自定义瓦片特征类解析对应的自定义文件夹中的地图参数信息的配置文件,解析出地图瓦片的地图参数信息,并传送给自定义瓦片读取类;

s5:自定义瓦片读取类根据接收到的地图参数信息、瓦片切片规则和瓦片命名规则调用相应的索引号计算方法,响应获取网络地图getmap请求,返回所需的地图瓦片;

所述步骤s5具体为:自定义瓦片读取类依据接收到的地图参数信息、自定义切片规则和瓦片命名规则调用相应的索引号计算方法,得到地理坐标和瓦片索引号之间的换算关系以及瓦片数据各级比例尺的像素分辨率;自定义瓦片读取类依据接收到的网络地图getmap请求中的参数,将网络地图getmap请求中的在请求坐标系下请求地理坐标范围转换为在tiledata.prj文件中的地图瓦片坐标系下的地理坐标范围,并根据网络地图getmap请求中的地理范围、几何像素范围计算理论上的瓦片像素分辨率,进而与瓦片数据各级比例尺的像素分辨率进行比较,取最接近的瓦片数据比例尺为显示比例尺,根据该比例尺分辨率和几何像素范围计算得到新的地理坐标范围,使用该显示比例尺和地理坐标范围计算瓦片索引号,得到瓦片文件。

下面以谷歌地图瓦片为例来说明本发明的扩展geoserver发布自定义瓦片wms服务的实现方法的实现过程:

本实施例中的自定义瓦片数据源信息解析类、自定义瓦片读取类、自定义瓦片特征类均设于nariimagetilesource模块中,其中nariimagetilesource是自定义的模块。

步骤1:预下载不同比例尺下的谷歌地图瓦片,所有地图瓦片均存储在tilemap文件夹中,形成自定义瓦片数据源,此实施例中约定地图瓦片的命名按照“比例尺级别/行号/列号.png”的规则命名;在geoserver数据目录的coverages文件夹中建立googletile文件夹,并在googletile文件夹中配置info.xml文件、tiledata.its文件和tiledata.prj文件;所述info.xml文件用于定义地图瓦片基本描述信息,包括:数据名称、数据来源及更新日期等描述信息;所述tiledata.its文件用于定义地图瓦片存储路径,所述tiledata.prj文件用于定义地图瓦片坐标系及投影信息,tiledata.prj文件采用epsg系统的wkt文本描述方式。

步骤2:在tilemap文件夹中,建立用于记录位于其内的地图瓦片的地图参数信息的配置文件config.xml,所述的地图参数信息包括:该该组地图瓦片所在全球地图的坐标范围、初始比例尺级别下全球范围对应的瓦片行列数、最小和最大比例尺级别、瓦片像素大小及扩展信息,所述扩展信息包括瓦片类型名称信息,用于当出现两组或多组不同类型的地图瓦片数据时,利用不同的瓦片类型名称区别开,例如可按切分规则命名,将与谷歌地图切分规则一致的地图瓦片的瓦片类型名称定义为“google”,将与worldwind地图切分规则一致的地图瓦片的瓦片类型名称定义为“worldwind”,或者用自定义的名字。

步骤3:geoserver接收并解析网络地图getmap请求,获得请求条件参数,具体包括:图层名称、请求地理坐标范围、像素大小、请求坐标系信息等;当geoserver判断出需要访问的图层是以步骤1中配置的自定义瓦片为数据源时,读取geoserver数据目录中的coverages文件夹中建立的info.xml文件、tiledata.its文件和tiledata.prj文件,利用自定义瓦片数据源信息解析类读取info.xml文件、tiledata.its文件和tiledata.prj文件中地图瓦片基本描述信息、地图瓦片坐标系及投影信息、地图瓦片存储路径;然后利用自定义瓦片读取类根据地图瓦片存储路径定位到需要读取的自定义瓦片数据源;再然后通过自定义瓦片特征类解析该地图瓦片存储路径信息下的config.xml文件,获得相应的地图参数信息,具体包括:该组地图瓦片所在全球地图的坐标范围、初始比例尺级别下全球范围对应的瓦片行列数、最小和最大比例尺级别、瓦片像素大小及扩展信息;

步骤4、所述步骤s5具体为:自定义瓦片读取类依据接收到的地图参数信息、自定义切片规则和瓦片命名规则调用相应的索引号计算方法,得到地理坐标和瓦片索引号之间的换算关系以及瓦片数据各级比例尺的像素分辨率;自定义瓦片读取类依据接收到的网络地图getmap请求中的参数,将网络地图getmap请求中的在请求坐标系下请求地理坐标范围转换为在tiledata.prj文件中的地图瓦片坐标系下的地理坐标范围,并根据网络地图getmap请求中的地理范围、几何像素范围计算理论上的瓦片像素分辨率,进而与瓦片数据各级比例尺的像素分辨率进行比较,取最接近的瓦片数据比例尺为显示比例尺,根据该比例尺分辨率和几何像素范围计算得到新的地理坐标范围,使用该显示比例尺和地理坐标范围计算瓦片索引号,得到瓦片文件。

例如谷歌地图瓦片数据源的config.xml中配置type信息为“google”,谷歌地图瓦片切分规则为:以左上角为起始原点,全球地图范围为:x轴取值范围为[-20037508.3427892,20037508.3427892],y轴取值范围为[-20037508.3427892,20037508.3427892],在该正方形投影平面上进行瓦片划分,每层全球影像瓦片数量为4的level幂次方,即第0层为1张、第1层为4张、第二层为16张,如此循环,可计算出每一张瓦片在每个层级下都有其所对应的行号和列号。在进行预下载时以“epsg900193_比例尺级别数/行号/列号.png”的方式对谷歌瓦片进行自定义组织。worldwind瓦片数据源的config.xml中配置type信息为“worldwind”,worldwind瓦片切分规则为:以左下角为起始原点,全球地图范围为:(-90,-180)至(90,180),每张瓦片的像素大小为512*512,第0层为10张瓦片,每下一层将上一层瓦片一分为四,在进行预下载时以“比例尺级别数/行号/列号.png”的方式对worldwind瓦片进行自定义组织。

当需要新增自定义类型的瓦片,如图2中的流程所示,在geoserver数据目录coverages文件夹中新增图层及相应的自定义瓦片数据源配置文件,在瓦片数据目录中部署新增的瓦片文件,并建立相应的config.xml,其中扩展信息中自定义瓦片类型名称和已有的自定义瓦片类型名称区别开。在程序部分,更新自定义瓦片特征类中增加识别新的类型名称,自定义瓦片读取类中增加计算该自定义瓦片切分和索引规则的方法,nariimagetilesource模块在geoserver中的自定义瓦片数据源信息解析类、自定义瓦片读取类、自定义瓦片特征类的调用方式不发生改变,有利于定制和扩展所需的地图瓦片数据源。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1