瓦片地图服务转换中间件的设计与实现
2016-08-10吴彬卓付荣祥俞志强
吴彬卓,付荣祥,黄 桦,俞志强
(1.中国测绘科学研究院浙江分院,浙江杭州310012;2.长兴县地理信息中心,浙江长兴313100)
瓦片地图服务转换中间件的设计与实现
吴彬卓1,付荣祥2,黄桦1,俞志强1
(1.中国测绘科学研究院浙江分院,浙江杭州310012;2.长兴县地理信息中心,浙江长兴313100)
以瓦片地图为核心的WMTS服务是当前最流行的地理信息服务形式,我国的天地图建设统一采用了这一服务形式。但天地图提供的WMTS服务地图形式固定、发布分级分区的特点也限制了其广泛应用。本文提出了一种基于瓦片地图服务的地理信息服务转换技术,将WMTS服务转换成其他形式的地图服务,适用于任意比例尺、任意维度的地图服务。
天地图;瓦片地图;WMTS;服务变换;KML服务
瓦片地图一经出现就受到了GIS行业的重点研究和应用,OGC在2010年颁布了以瓦片地图为核心的WMTS规范,同年中国推出了以WMTS为主要地图服务形式的天地图·中国。天地图WMTS服务后台数据主要以金字塔结构缓存瓦片地图,总共分为20级,1~14级由天地图·中国发布,15~17级由省区天地图发布,18~20级由市县天地图发布。WMTS服务具有标准、展示快速的特点,在各行业地理信息相关系统应用中广受欢迎,其不足是天地图WMTS服务标准单一、坐标系固定、数据分级分区。标准单一使得只有能够调用WMTS服务的应用系统才能接入天地图;坐标系固定使得其无法在使用其他坐标系的应用系统中调用;数据分级分区导致跨级别、跨区域调用方式复杂,叠合效果差。因此,本文设计并实现一种基于天地图WMTS服务的地理信息服务转换中间件。该中间件在天地图提供的静态、分级分区WMTS服务的基础上,通过投影转换、服务聚合、接口变换等技术手段,封装出其他类型的地理信息服务,满足比例尺不固定、跨区域跨比例尺、三维等应用场景,从而扩展天地图的应用领域,也为基于天地图WMTS服务的应用系统提供更为方便的调用方式。
一、基于WMTS的地理信息服务转换中间件设计
1.架构设计
笔者设计的基于WMTS的地理信息服务转换中间件架构如图1所示。
图1 中间件架构
基于WMTS的地理信息服务转换中间件包括天地图瓦片获取层、瓦片地图存储层和服务层3块结构。天地图瓦片获取层的主要功能是负责根据需要读取来自国家、省、市、县各级天地图的WMTS服务,并拼接形成跨越1~20级比例尺的、跨区域的瓦片地图。瓦片地图存储层以文件形式存储瓦片地图数据。服务层根据客户端请求读取瓦片地图存储层的数据,以相应的地图服务标准响应请求。本方案与原来的天地图WMTS服务相比,增加了天地图瓦片获取层作为瓦片地图抓取器,服务层则除了提供天地图原始的WMTS服务以外,还提供了WMS、WMS-C、TMS、KML等服务。
2.工作流程
工作流程包括天地图瓦片获取和服务响应。
天地图瓦片获取工作流程由天地图瓦片获取层负责,包括以下步骤:①服务层在响应客户端请求时读取存储层的瓦片,首先要判断瓦片地图存储层中是否已有目标瓦片,若没有,则将级别、行列号等参数发送给天地图瓦片获取层;②天地图瓦片获取层根据瓦片的级别及坐标判断属于哪个天地图节点提供的服务并远程读取地图瓦片;③如果是跨区域的瓦片,则分别读取多个天地图节点的瓦片,并根据行政区边界进行拼接,最后按照《地理信息公共服务平台电子地图数据规范》(CH/Z 9011—2011)的要求保存到瓦片地图存储层。如图2所示。
图2 天地图瓦片获取流程
服务请求响应工作流程由服务层负责。根据客户端请求类型的不同,有不同的工作流程。
如果客户端请求的是WMS、WMS-C服务,则启动如下工作流程:①获取服务请求的地图范围(bbox)、图片大小(WMS的请求参数是with、height,WMS-C无此参数)、比例尺(WMS-C的请求参数是resolution,WMS无此参数)和坐标系;②根据请求的地图范围和图片大小计算出比例尺最接近的瓦片地图级别,然后根据地图范围计算出地图瓦片起止行列号,确定目标瓦片矩阵;③根据目标瓦片矩阵,读取存储层中缓存的地图瓦片(如不存在则启动天地图瓦片获取流程),将获取到的瓦片进行拼接,形成完整的瓦片;④根据请求坐标系对拼接好的瓦片进行坐标系及投影转换;⑤根据地图范围对坐标系转换后的瓦片进行裁切;⑥将裁切后的瓦片缩放至请求的图片大小;⑦将图片返回给客户端。如图3所示。
图3 WMS、WMS-C服务转换工作流程
对于TMS、WMTS服务,则根据1~20级瓦片地图的比例尺生成相应的能力文档。客户端根据能力文档发出符合规范的瓦片请求,工作流程包括以下步骤:①获取服务请求的级别、行列号;如果请求的是TMS服务,则需反算到WMTS服务规范中相应的行列号(TMS服务行列号从左下角起算);②根据目标瓦片矩阵,读取存储层中缓存的地图瓦片(如不存在则启动天地图瓦片获取流程);③将图片返回给客户端。如图4所示。
图4 TMS、WMTS服务转换工作流程
KML服务的工作流程包括:①返回第一级比例尺KML数据;②客户端解析KML数据,根据地图显示范围和显示屏幕大小,请求合适区域的较大一级比例尺KML数据,持续解析、请求,直至找到最合适的显示范围(〈LatLonAltBox/〉)和显示屏幕大小〈Lod/〉的KML数据;③根据KML数据中的〈Link/〉节点获取WMTS瓦片地址,请求WMTS瓦片服务;④转到请求WMTS服务工作流程。
二、关键技术
实现上述设计的关键技术包括跨区域地图瓦片聚合、地图瓦片快速投影及KML服务发布。
1.跨区域地图瓦片聚合
为消除天地图瓦片跨区域调用产生的边界地区地图遮盖、冗余调用、效率低下的问题,必须将跨区域瓦片进行聚合,变成一个瓦片服务。中间件存储了各天地图节点的行政边界数据,当获取到的瓦片是跨区域瓦片时,使用各自节点的行政边界数据对瓦片进行裁切并拼接到一起,生成一张无缝贴合的新的地图瓦片,然后保存到磁盘上,为快速提供跨区域地图服务提供数据。
2.地图瓦片快速动态投影
对于使用不同于天地图坐标系的应用系统,应提供WMS服务供其使用。地图瓦片快速动态投影是解决坐标系转换的重要手段。首先根据WMS请求的地理范围和图片尺寸,计算出最接近的瓦片比例尺和地理范围内的瓦片矩阵;然后按照天地图坐标系统将瓦片矩阵进行拼接,计算矩阵4个角点在WMS图片中的像素位置,将图片进行矩形或梯形拉伸,画在目标图片中;最后形成投影后的WMS地图图片。使用地图瓦片快速动态投影技术比根据矢量进行实时绘制具备相当强的速度优势。
3.KML服务发布
KML服务是将WMTS服务封装成KML Networklink数据的形式。一般包含一个代表当前瓦片〈GroundOverlay/〉节点,以及代表下一级相应的4张KML瓦片数据的4个〈Networklink/〉节点,客户端根据〈Networklink/〉节点请求下一级的KML瓦片数据时,同样得到下一级瓦片的〈GroundOverlay/〉节点和下下一级4张KML瓦片数据。以此不断循环,形成整个KML服务。
三、性能测试
为了测试中间件的转换效率,本文搭建了测试环境对地图瓦片服务和转换后的接口进行了对比测试。测试目的主要是对转换后的服务对效率的影响作评价。
1.测试方案
在测试环境方面,测试客户端采用Jmeter来模拟地图瓦片访问操作;测试服务器端选用i7八核2.50 GHz CPU、16 GB内存、SSD固态硬盘;网络采用100 Mbps网络连接。在测试数据方面,使用天地图·湖州、天地图·德清、天地图·长兴18~20级电子地图和长兴县1∶2000、1∶500矢量地图。电子地图占用空间为40 GB,矢量数据占用空间约为200 MB。天地图·湖州、天地图·长兴、天地图·德清18~20级电子地图发布为 WMS、WMS-C、WMTS、TMS和KML服务并预先进行天地图数据缓存,形成跨区域、跨级别的统一的瓦片数据;长兴县1∶2000、1∶500矢量地图使用ArcGIS Server软件发布为矢量WMS服务,见表1。
表1 测试数据列表
测试方法采用对比测试。针对各种已经准备好的数据服务,分别以10个并发作15 min连续访问,测试结果从服务响应随时间变化方面进行评价。
2.结果及分析
如图5、图6所示,转换后的WMTS、TMS访问效率基本稳定在40 ms左右,KML则稍高一些。KML由于要先请求KML,再请求地图瓦片,因此比WMTS、TMS的访问耗时稍长一些。转换后的WMS 和WMS-C服务访问时间基本稳定在90 ms,而使用矢量数据发布的WMS服务访问时间则从25 ms~8 s不等。
图5 天地图与转换后服务的耗时对比
图6 基于矢量数据的WMS服务请求耗时
转换后的WMS服务主要耗时包括瓦片数据读取和图片变形及绘制,每次访问所需要读取的瓦片和图片变形绘制次数是固定的,而且直接拼接图片速度较快。使用矢量数据发布的WMS服务会受到矢量数据索引速度、绘制数据量、符号绘制复杂程度的影响,产生访问效率不稳定的情况。
通过以上测试可以得出,基于WMTS的地理信息服务转换中间件可提供良好的访问效率。
四、结束语
在天地图应用推广过程中,各式各样的地理信息应用环境对天地图提出了更高的要求,单纯以性能为目标的WMTS服务无法满足多种多样的运行环境。基于WMTS的地理信息服务转换中间件将天地图服务转换为跨区域WMTS、TMS、WMS、WMS-C、KML服务,在保证地图服务效率的前提下拓宽了天地图的应用领域。但中间件的转换效果也存在一些问题。如跨区域瓦片融合,在行政区域交接的范围,往往由于数据的误差、境界线的不完全重合、境界符号不完全叠盖、注记超出境界范围等因素,造成融合后的瓦片注记缺失、境界交错等情况,影响地图瓦片的美观。地图瓦片动态投影采用的是矩形变换或举行变换,没有严格按照点对点进行投影转换,投影转
换后的要素位置存在一定偏差,注记和符号也有模糊的情况出现。在今后的研究中,还需要进一步对这种情况进行分析,从WMTS服务本身和转换技术两方面进行改进,以期达到更好的效果。
[1] 王晓东,刘慧平,乔瑜.利用Bing Maps地图切片实现网络地图服务[J].国土资源遥感,2010(2):122-127.
[2] 刘冰,谢轲,陈小乐.基于GIS的瓦片式地图切图算法的设计与实现[J].科技信息,2011(7):60-61.
[3] 许虎,聂云峰,舒坚.基于中间件的瓦片地图服务设计与实现[J].地球信息科学学报,2010,12(4):562-567.
[4] 聂云峰,刘海玲,许虎.GeoWebCache瓦片地图服务中间件研究[J].测绘科学,2011,36(6):207-209.
[5] 谢忠,丰荣祥,罗显刚.一种分布式空间数据的服务聚合模型[J].测绘科学,2011,28(3):223-226.
[6] 周耀学,卫东,邱文.省级地理信息公共服务平台服务体系建设[J].测绘通报,2011(8):23-25.
[7] 杜清运,虞昌彬,任福.利用嵌套金字塔模型进行瓦片地图数据组织[J].武汉大学学报(信息科学版),2011,36(5):564-567.
[8] 黄梦龙.瓦片地图技术在桌面端GIS中的应用[J].地理空间信息,2011(4):149-151.
[9] 周沛.智能交通系统中的瓦片地图技术研究与应用[D].上海:同济大学,2008.
[10] 国家测绘地理信息局.地理信息公共服务平台电子地图数据规范:CH/Z 9011—2011[S].北京:测绘出版社,2011.
Design and Implementation of Tile Map Service Transformation Middleware
WU Binzhuo,FU Rongxiang,HUANG Hua,YU Zhiqiang
10.13474/j.cnki.11-2246. 2016.0234.
P208
B
0494-0911(2016)07-0103-03
2016-05-04
测绘地理信息公益性行业科研专项(201512024;201512012)
吴彬卓(1979—),男,硕士,高级工程师,主要研究方向为测绘与地理信息。E-mail:wubbzz@qq.com
引文格式:吴彬卓,付荣祥,黄桦,等.瓦片地图服务转换中间件的设计与实现[J].测绘通报,2016(7):103-105.