APP下载

兼容多GIS平台的瓦片生成引擎关键技术研究

2017-11-14张晓晓庞婷

电脑知识与技术 2017年29期
关键词:瓦片图层引擎

张晓晓+庞婷

摘要:通过对现有广电系统内各地区网管系统的分析,设计并实现兼容多GIS平台的瓦片生成引擎系统。该系统根据各地区网管系统的实际情况进行服务设计,通过Web Service方式向外发布,将各地区网管系统内GIS平台的图层数据信息进行整合,实现对GIS平台使用的透明性,为上层网管系统及其他服务提供统一的接口。

关键词:地图切片;Web Service;多GIS平台

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)29-0229-02

Abstract: Based on the analysis of the network management system in the existing radio and television system, the tile generation engine system compatible with multi GIS platform is designed and implemented. The system is designed according to the actual situation of network management system in all regions, through the Web Service publication, the layer data of the GIS platform in each area network management system is integrated to achieve the transparency of the GIS platform, which provides a unifiled interface for the upper network management system and other sevices.

Key words: Map tiles;Web Service; multi GIS platform

1 背景

GIS具有強大的空间数据管理与分析能力、信息可视化的巨大优势。广电领域中,大量的数据包含有地理的成分[1]。因此,广电资源管理中GIS的需求非常大。而广电领域所使用的GIS是用SuperMap、ArcGIS等平台二次开发的,地图背景信息动态加载,系统响应时间比较长。为提高加载性能,本文设计并开发了兼容多GIS平台的瓦片生成引擎。通过该引擎可以将第三方地图供应商的图形资源转换成可在业务保障系统范围内使用的标准服务,提高地图资源的利用率。

2 瓦片生成引擎的设计

2.1 瓦片生成引擎的结构和开发环境

根据引擎开发过程中应用程序对相应数据信息的处理过程,把整个引擎分为两个部分:接口部分和核心部分,如图1所示,这两部分是上下层的关系,即通过接口部分输入的数据信息,需要通过核心部分的处理,才能实现对特定GIS系统的图层信息标准化处理。其中,多GIS平台接口模块实现了总控系统与不同GIS平台之间的数据通信功能。

瓦片生成引擎以开源软件Eclipse为开发平台,采用 Supermap、ArcGIS、Microstation的开发包并采用OSGi架构来开发,同时运用Java相关知识构建开发应用程序,客户端用Flex语言来开发。

2.2 瓦片切割引擎的功能设计

本文以SuperMap和ArcGIS等平台为样本,对现有广电系统使用的各种GIS平台软件进行分析,通过分析各GIS平台提供的API接口,实现图层信息标准化处理模块。通过API接口函数访问各平台,输出Googel Map格式的图像文件资源,客户端使用。瓦片生成引擎主要分为三个模块: 切图模块、切图配置模块和瓦片资源库模块。详细功能如下:

1) 输入模块:主要实现对GIS平台现有的API进行分析,设计并实现统一的对外接口,实现对各GIS平台使用的透明性;该模块为背景地理图片信息的输入模块。

2) 切图模块:是主要的模块,可以通过此模块与已有不同GIS服务器进行连接,从GIS数据库中导出地图切片文件;并将地图切片文件存储到服务器上供客户端使用。本模块只从GIS系统中获得数据,不对GIS系统数据修改。

3) 切图配置模块:该模块为用户提供管理和同步GIS信息的界面。该界面采用Flex设计,可选择各种切图所需的地图信息,并能实时追踪瓦片生成和上传过程中的各种信息,在瓦片生成后自动调用上传功能。

4) 瓦片资源库模块:以资源服务方式对外提供基础地理信息图片服务,本模块以简单的接口提供图层资源信息,避免在浏览器端或客户端作过于复杂的图层绘制工作。该模块把切图模块经过标准化处理过的切片信息通过FTP协议并采用断点续传方式上传至瓦片存储服务器中,保证了图片上传的准确性。

3 地图瓦片参数解析

3.1 瓦片大小及命名规则

在不同的地图分辨率下,通过切割的方式将地图划分为像素为256*256的地图单元,划分成的每一块地图单元称为地图瓦片。实现地图切片与其真实地理坐标之间的相互换算是其他方面工作的前提和基础[2]。为了组织如此多的地图瓦片,地图是用来一个简单的坐标系统。每个瓦片都有一个level来表示其缩放级别,还有一个row和一个column来表示该瓦片在当前缩放级别下的网格内的位置。因此,瓦片的命名采用level_row_column的形式命名,并且生成的瓦片会放在level命名的文件夹中。其中,level表示地图的级别, row表示瓦片的横向索引,起始位置为最左边,数值为0,向右+1递增。column表示瓦片的纵向索引,起始位置为最上面,数值为0,向下+1递增。

3.2 瓦片存储格式endprint

由于瓦片数量是随缩放级别按指数增长的,因此每提高一个缩放级别会增加大量的地图细节,同时为了应付越来越多的瓦片,对带宽和存储空间的需求也会相应增加。对图像进行压缩是一种节省空间开支的有效方法 [3]。

常用的地图瓦片格式有JPEG和PNG两种。PNG是目前保证最不失真的格式,它能把图像文件压缩到极限以利于网络传输,但又能保留所有与图像品质有关的信息。同时PNG支持透明图像的制作,可让图像和网页背景和谐地融合在一起。

根据透明度和色度PNG图片分为PNG8、PNG24、PNG32三种格式。通过表对图片格式的比较,选择地图切片保存为PNG32格式,满足地图切片压缩质量、浏览器兼容等条件,达到地图显示的良好效果[4]。瓦片存储格式比较如表1所示。

4 瓦片生成引擎测试与分析

配置模块采用FLex设计了界面友好的Flex客户端界面如图2所示,可以选择切图所需的地图信息并可对切图参数进行配置。该模块通过Web Service方式调用切图模块实现对配置信息的浏览及修改、初始图预览及运行状态查看等操作。同时该模块对外提供图层管理的功能,用户可以根据实际需要进行添加和删除图层以控制地图图层的显示与隐藏。

基于FLex的客户端将切图等级为2的请求写入配置文件中,点击开始切图调用瓦片生成引擎,利用瓦片生成算法将生成的瓦片上传至指定的目录下。由算法可知,生成的瓦片数量为4张。切图等级2时的结果如图3所示。

图4是一张完整的地图,图3是切图等级为2时GIS Map Service模块生成的4张瓦片,通过4张瓦片的拼合对比验证了输出瓦片的正确性。

5 结束语

利用GIS系统管理广电系统的网络资源,可以提高用户的满意度。针对各地广电系统所应用不同的GIS平台,对其进行整合兼容,使得不同地区、不同GIS平台的有线电视部门可以统一使用本系统。本文利用瓦片生成引擎生成地图瓦片,提高了图片资源的访问速度。

参考文献:

[1] 北京凯普奇科技开发有限公司. 基于SuperMap GIS的广电网络资源管理系統解决方案[C]. 2005.

[2] 谭庆全, 薄涛, 等. 基于ArcIMS实现切片式WebGIS及其在地震应急中的应用[J]. 防灾科技学院学报, 2011, 13(1):65-69.

[3] 刘慧杰, 李英成, 靳海亮. 地图缓存技术显示模式的研究[J]. 地理信息世界, 2012, 6(3):52-55.

[4] 张方舟, 王学宇, 等. 城市地下管网系统地图缓存技术研究与优化[J]. 计算机技术与发展, 2016, 26(11):148-152.endprint

猜你喜欢

瓦片图层引擎
一种基于主题时空价值的服务器端瓦片缓存算法
巧用混合图层 制作抽象动感森林
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
浅析“递层优化法”在矿井制图中的应用
基于NoSQL数据库的瓦片地图服务
One Engine Left只剩下一个引擎