ArcGIS Server与GeoServer瓦片生成对比研究

2013-08-20 01:00黄德志
科技视界 2013年27期
关键词:瓦片图层切片

汪 龙 黄德志

(中南大学 地球科学与信息物理学院,湖南 长沙410083)

0 引言

传统的WebGIS 对于客户端提交的地图请求,通常利用实时计算模式, 如用ArcIMS 发布地图时, 先由客户端提交地图请求, 通过ArcXML 将各项参数提交给服务器,服务器根据参数计算并生成客户端所需图形,再通过ArcXML 反馈给客户端。 但是由于GIS 中需要访问或处理的空间数据通常是海量的,受网络带宽限制,数据传输和浏览速度较慢,通常客户对每次请求要等待比较长的时间。 针对这一问题,人们提出了地图瓦片技术,即地图缓存技术[1]。

目前,Google Map 的瓦片地图服务是所有在线电子地图服务中最好的服务, 许多瓦片地图服务都是基于Google Map 的地图模式提出的。 GoogleMap 提供了完整的瓦片地图、卫星影像和应用开发接口,用户可以根据谷歌提供的API 方便的调用瓦片地图。Google Map 生成瓦片地图主要采用的是金字塔模型。在开源的地图服务器中,GeoServer[2]是其中的代表,它采用与Google 类似的切割方法,将底图和专题图层分别切割。

虽然地图瓦片技术使WebGIS 的性能得到极大改善,但是切片之后的地图以图片形式存在, 当客户端对空间数据进行在线编辑后,这种改变不能立即反馈给客户端,而是需要后台管理员对地图进行重新切片。 为了解决WebGIS 中地理数据需要频繁编辑和编辑后的图形不能在客户端得到及时反映的问题,郭明武、彭清山、李黎[3]提出了地图瓦片局部更新,在ArcGIS Server 融合缓存的基础上,创建了自定义函数UpdateTile,根据所更新要素的坐标返回,获取对应的切片,接着在后台重新生成这个范围内的切片,并最终实现图形显示与数据更新的同步。 而GeoServer 和GeoWebCache 的瓦片缓存技术中的一致性维护机制则可以保证Web 缓存库中的地图信息与底层空间数据库中的地图信息一致,各Web 缓存数据库之间信息一致。

1 切片原理

地图瓦片技术将配置好的一定坐标范围的地图,按照固定的若干个比例尺(瓦片级别)和指定图片尺寸,在服务器端切成若干行及列的正方形图片,以指定的格式保存成图像文件,按一定的命名规则和组织方式存储到服务器的目录系统中或是数据库系统里,形成金字塔模型的静态地图缓存。 瓦片金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变,如图1 所示。本文提出的地图切图方法是根据瓦片式地图的金字塔模型结构,确定地图服务平台所要求的最大缩放级别数,把缩放级别最低、地图比例尺最大的地图图片作为金字塔的底层[4]。 每一缩放级别对应相应的地图比例尺,根据研究区域的地理坐标范围,计算中央经线,设置分度带方法以及坐标系统形成比例尺下的接图表图层文件,并根据国家基本比例尺地形图的分幅编号方法计算所有的标准图幅号。将每一级对应的地图接图表对地图文档进行切割,将生成的瓦片地图以对应的图幅号进行命名,按照分级的目录组织结构将文件存储存储在服务器硬盘以及Oracle 数据库中,数据表的字段结构为图幅号、图片路径,在服务器端形成该地图文档相应的地图瓦片库,便于客户端对瓦片库进行索引和查找。

2 研究方案

2.1 研究内容

(1)分别使用ArcGIS Server 和Geoserver 作为地图服务器,对空间数据库里存储的地进行切片,并在浏览器中显示。

(2)比较ArcGIS Server 与GeoServer 生成切片地图的差异。

2.2 研究方法和技术路线

瓦片地图服务体系结构,主要由三层组成,分别为客户端、应用服务端和数据库。 客户端为浏览器。 服务器端分为GIS 服务器和web 服务器,为服务层。数据库中可存放地图数据或者属性数据等。发布地图瓦片服务可通过GIS 服务器(如ArcGIS Server、GeoServer)读取数据库中存储的地图、或者计算机中的地图文件,对其进行切片,然后通过web 服务器发布,这样,用户即可通过浏览器对切片地图进行访问。在客户端,还可通过OpenLayers、GMap 等对地图进行修饰,以获得更好的用户体验。

2.2.1 使用ArcGIS Server 发布瓦片地图

用ArcGIS Server 发布瓦片地图,GIS 服务器为ArcGIS Server,Web 服务器为IIS,数据库为Oracle。

研究步骤为:

1)环境搭建: ArcGIS Server10.0+ ArcSDE for Oracle+ Oracle 10g+Visual Studio 2010。

2)在ArcCatalog 中建立与Oracle 数据库的连接。

3) 将shapefile 文件通过ArcSDE 保存到Oracle 数据库中。 在ArcMap 加载数据库中地图,整饰地图,形成MXD 文档。

4)通过ArcGIS Server Manager 发布地图服务,用桌面系统调用该服务。

5)地图切片。 地图发布成功后,在ArcCatalog 中设置好切图的坐标原点、输出图片的格式、大小、图片的DPI 和各级缓存的比例。

6)创建web 应用程序,调用地图服务,并将切片前(图1)与切片后的地图缩放速度做对比(图1)。

图1 切片前地图加载速度

图2 切片后地图加载速度

2.2.2 使用GeoServer 发布瓦片地图

用GeoServer 发布瓦片地图,GIS 服务器为GeoServer,Web 服务器为Tomcat,数据库为PostGIS。

研究步骤为:

1) 环境搭 建:GeoServer+Tomcat+PostGIS+PostgreSQL+NetBeans IDE

2) 利用PostGIS 将地图文件导入到数据库中。 使用PostGIS +PostgreSQL 数据库, 用PostGIS 提供的插件shape file to postgis importer 把shapefile 数据导入数据库。

3)将数据库中的地图添加到GeoServer 中,将要进行切片的图层添加到一个Group 中并进行风格设置。

4)利用GeoWebCache 生成瓦片地图。 设置好切片的级别、坐标系统、保存图片格式及进行切片的线程数即可。

按照上述步骤生成切片,对比切片前后加载图片时间(图3 为切片前放大级数为7-14 时的加载时间对比, 图4 为切片后放大级数为7-17 时的具体加载时间):

图3 切片前放大级数为7-14 时的加载时间对比

图4 切片后放大级数为7-17 时的具体加载时间(加载时间为各时间之和)

3 实验结果分析

3.1 ArcGIS Server 切片前后缩放地图速度对比

表1 ArcGIS Server 切片前后缩放速度对比

用ArcGIS Server 生成的瓦片地图的大小为28.5MB。

由表1 可以看出,切片前缩放的平均速度约为676ms,切片后平均速度约为159ms,瓦片技术在这个试验中提高速度约为4 倍。

3.2 GeoServer 切片前后加载地图速度对比

表2 GeoServer 切片前后加载速度对比

用GeoServer 生成的瓦片地图占用空间220MB。

由表2 可以看出,切片前缩放的平均速度约为8.86s,切片后缩放的平均速度约为737.7ms, 瓦片技术在这个试验中提高速度约为12倍。

3.3 ArcGIS Server 与GeoServer 切片对比

本文从渲染效果、简便程度、效率、经济、空间等五个主要方面进行切片效果对比。

3.3.1 渲染效果

ArcGIS Server 对发布的地图服务进行渲染可以在arcgis 系列软件中直接设置(设置mxd 文件渲染,渲染每个图层),选择程序提供的渲染模式,也可以自定义渲染模式,还可以加载拷贝的style,渲染文件可移植性强,方便快捷,效果良好。

GeoServer 对发布的地图渲染是通过渲染每个图层来实现的。 每个图层发布的时候,可以选择GeoServer 提供的少量渲染模式,可选的模式比较少, 但是和ArcGIS Server 相同的是, 也可以自定义渲染模式,还可以加载拷贝的xml 文件,修改已有的xml 渲染文件,渲染文件可移植性强,同样方便快捷。

总体来说, 如果不需要自定义特别的渲染模式的话,ArcGIS Server 选择性多,有优势。 操作过程中,ArcGIS Server 操作快捷方便,调整效果方便,有优势,但是需要ArcGIS Destop 桌面应用程序才可以操作,有局限性。 GeoServer 操作界面简便,不需要特定软件环境,但是效果不直观,相比于ArcGIS Server 不够方便。 如果需要自定义特别的渲染模式, 两种都方便快捷, 这种情况下GeoServer 比ArcGIS Server方便,因为其不需要特定软件环境。

3.3.2 简便程度

GeoServer 环境配置相比ArcGIS Server 来说一定容易一些。 操作上,ArcGIS Server 发布服务、切片可直接通过桌面应用程序完成,参数设置简单易理解,步骤简单。 GeoServer 发布服务需要先建工作空间、store、发布layer,发布过程中选择渲染方式,投影等参数,过程相比ArcGIS Server 要复杂。 GeoServer 切片是通过geowebcache 服务完成,其可以方便的设置切片各参数,保存类型位置等。 ArcGIS Server 切片使用紧凑模式缓存时,速度比GeoServer 切片快的多,ArcGIS Server 切片使用松散模式缓存时,速度也比GeoServer 切片稍快。 除此之外,地图发布之后,GeoServer 修改地图服务需修改具体图层然后重新切片,操作不方便,但是ArcGIS Server 提供局部更新操作支持。

3.3.3 效率

对于相同地图服务,ArcGIS Server 切片使用紧凑模式时, 切片时间大大少于GeoServer 切片时间;ArcGIS Server 切片使用松散模式时,切片时间略多于GeoServer 切片时间。 读取缓存文件 (图片) 时,ArcGIS Server Manager 要略慢于GeoServer。

3.3.4 经济

ArcGIS 系列软件是商业软件,需购买,且相当贵;而GeoServer 以及postgis 等软件都是开源软件,免费,容易获取。

3.3.5 空间

ArcGIS Server 切片使用紧凑模式时,保存的缓存文件不是直接的jepg/png 等图片格式,而是ArcGIS 识别的一种特别格式,其缓存文件大小远小于GeoServer 对相同服务的切片缓存。

4 结论

本文详细论述了使用ArcGIS Server 和GeoServer 进行瓦片地图生成的原理及过程,并对两者进行了对比。ArcGIS Server 在地图渲染、切片效率、节约存储空间方面要优于GeoServer,但是GeoServer 在易用性、可移植性、经济性方面会更有优势。用户可根据这些方面对地图服务平台进行选择。

[1]苏旭明,谭建成.WebGIS 中瓦片地图关键技术研究[J].北京测绘,2012(2):9-12.

[2]阳华,刘振宇,许文明.GeoServer 瓦片缓存机制研究[J].网络安全技术与应用,2011(4):63-65.

[3]郭明武,彭清山,李黎.ArcGIS Server 中地图瓦片实时在线局部更新方法研究[J].测绘通报,2012(2):35-38.

[4]Scott Davis.GIS for Web Developers[M].蒋波涛,译.北京:电子工业出版社,2008.

[5]黄梦龙.瓦片地图技术在桌面端GIS 中的应用[J].地理空间信息,2011,9(4):149-151.

[6]许虎, 聂云峰, 舒坚. 基于中间件的瓦片地图服务设计与实现[J].地球信息科学学报, 2010,12(4):562-567.

[7]Aref W G, Kamel J, Mokbel M F. Analysis of Multi-dimension Space Filling Curves[J]. Geoinformatica, 2003,7(3):179-209.

[8]Chen K L, Chang Y I. Neighbor-finding Based on Space-filling Curves[J].Information Systems, 2005,30(3):205-226.

猜你喜欢
瓦片图层切片
一种基于主题时空价值的服务器端瓦片缓存算法
巧用混合图层 制作抽象动感森林
基于SDN与NFV的网络切片架构
肾穿刺组织冷冻切片技术的改进方法
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
冰冻切片、快速石蜡切片在中枢神经系统肿瘤诊断中的应用价值比较
浅析“递层优化法”在矿井制图中的应用
基于NoSQL数据库的瓦片地图服务
墨汁染色在组织切片中的应用