QuickMap网络地图服务平台设计与实现

2012-04-01 17:48刘昱君
测绘通报 2012年1期
关键词:空间数据插件组件

刘昱君,谈 帅,刘 杰

(江苏省基础地理信息中心,江苏南京210013)

一、引 言

随着经济社会的发展,越来越多的政府部门认识到GIS在日常管理中的重要作用,测绘地理信息部门的服务范围横向上从国土、公安、交通等强GIS行业向文化、教育等中、弱GIS行业拓展,纵向上从省级厅局向市县级局办延伸。这样的延伸与拓展使测绘地理信息服务部门面临着一些之前未遇到的问题:

首先,项目经费问题。以往GIS项目以满足强GIS应用需求为导向,强GIS部门的应用一般和单位的核心业务流程密切相关,对GIS系统的功能、稳定性要求非常高,领导往往非常重视也愿意投入较多的经费开发。而中、弱GIS部门的应用由于处于起步阶段,领导重视程度不一,经费投入往往不足。这就导致之前一直采用的基于GIS平台软件定制开发的模式相对于中、弱GIS部门的投入过于庞大。

其次,数据来源问题。目前GIS项目呈现综合化趋势,现势性要求越来越高,尤其是目前正在开展的“天地图”项目建设,需要丰富、翔实,贴近用户生活的地理信息。作为基础测绘部门,这类兴趣点数据并不在采集范围之内,而且这类信息每天都在变化,如何高效地获取每日更新的现势数据是对GIS应用部门的挑战。

再次,快速开发、灵活部署问题。随着GIS应用的深入,客户的要求越来越高,往往从项目启动到部署运行只给一至两个月时间。这要求开发人员对GIS平台有着极深入的了解,碰到问题能够快速解决,然而,GIS平台厂商从自己的商业利益出发,不可能把底层技术透露太多给应用开发商,经常导致整个项目因为一两个问题被拖延。而且,目前主流的大型GIS平台过于庞大,系统开发完成后部署复杂,非常容易出问题。

基于以上几个原因,笔者所在单位决定研发具有自主知识产权的网络地图服务平台软件。

二、研发内容

1)研发互联网地理信息挖掘工具,针对各类互联网地图服务网站、商业务网站以及房产服务网站等编写对应的数据提取算法,并将兴趣点数据按照“天地图”兴趣点分类标准进行分类。

2)研发QuickMap Server软件,支持 Shapefile、PostGIS、MySQL、Oracle等多种矢量数据源,支持Grid、Image等多种栅格数据源,提供简单的空间数据分析服务功能,支持 WMS、WFS、WCS、WMTS等“天地图”技术规范所指定的服务标准。

3)研发QuickMap Console软件,支持多种矢量、栅格数据存储格式,功能包括数据管理、数据入库、空间数据可视化查询、交互式符号化与专题制图、地图服务发布、地图服务管理等,该软件可集成互联网地理信息挖掘工具的功能,还可以作为插件与软件开发工具集成,组成WebGIS项目生命周期管理软件。

4)研发QuickMap Application二次开发包,封装QuickMap Server服务调用接口,设计方便、实用的WebGIS控件,便于快速搭建WebGIS应用,提供基于插件架构的Web客户端框架,方便扩展客户端功能。

三、技术方案

QuickMap网络地图服务平台中采用了分层设计和插件设计相结合的架构,其中GIS核心组件采用分层架构设计,QuickMap Server与QuickMap Console复用 GIS核心组件。QuickMap Server、Quick-Map Console、QuickMap Application应用模版均采用插件式设计,针对桌面软件、服务端软件及Web客户端分别开发插件式框架,实现3个软件的灵活扩展。

1.系统架构

(1)GIS核心组件架构

GIS核心组件是QuickMap网络地图服务平台的基石,主要提供空间数据访问、空间数据渲染等GIS功能,该组件采用3层架构,即数据访问层、数据模型层以及数据渲染层:

1)数据访问层:该层定义了一组数据访问接口,并针对不同的数据的存储方式实现了这些接口,屏蔽了不同数据源的差别。

2)数据模型层:该层定义了统一要素访问接口,屏蔽不同逻辑设计的空间数据的差异,上层应用人员只需要调用要素访问接口而不需要知道具体要素类的设计。

3)数据渲染层:在统一数据模型基础上,提供符号化、专题制图接口,并将制图结果绘制于屏幕、内存绘图设备、图片文件中。

(2)插件式架构设计

插件式架构相对于组件式具有更强的灵活性和扩展性,在对功能进行修改和扩充时不需要对整个系统进行重新编译,只需要覆盖旧的插件文件或者注册新的插件即可完成系统的升级和功能扩展。插件式架构包括如下几个部分。

1)插件框架:插件框架定义了一组应用程序核心与插件的通信契约,插件功能必须实现这些契约,在软件运行的时候系统通过契约调用对应的插件。

2)插件配置持久化组件:该组件在系统启动时读取存储在数据库或者文件中的插件清单,按照一定的结构生成插件注册表,并将插件功能映射到对应的界面元素的交互事件处理中。

3)插件运行时管理组件:该组件负责插件运行生命周期管理,插件配置持久化组件生成插件注册表后,该组件根据配置信息通过反射等动态对象生成技术创建插件对象,并在插件不再使用时负责卸载插件并销毁。

2.关键技术

(1)互联网地理信息挖掘技术

本平台开发的数据挖掘工具通过对多个互联网站点的挖掘,提取兴趣点数据,对这些原始数据按照“天地图”国家节点查询服务的分类标准进行分类和投影转换,使其精度和坐标系符合“天地图”建设的要求。具体流程如下:

1)依据“天地图”国家节点提供的兴趣点的类型,分析多个互联网站点所能提供的信息,将兴趣点分为普通兴趣点,商住楼、住宅小区,公交站点、路线3类。其中,普通兴趣点从主流互联网地图服务网站获取;商住楼、住宅小区从大型互联网房产服务站点获取;公交站点、路线则通过对公交服务网站和互联网地图服务网站综合挖掘获取。

2)分析各个互联网站点相关功能的后台服务接口,按照请求方法将服务分为POST方式和GET方式两类,按照结果返回的格式又进一步划分XML返回方式和JSON返回方式,针对不同的请求方式、结果返回格式编写不同的请求和解析算法。将不同来源的兴趣点解析成统一的格式。

3)对重复的兴趣点进行归并后对兴趣点数据进行分类。

4)分析不同互联网站点所使用的网络地图的坐标系统,以县、区为单位将兴趣点投影到1980西安坐标系和CGCS2000坐标系。

(2)空间数据访问技术

目前空间数据存储格式非常多,常见的有Shapefile、Oracle、PostGIS、SQL Server等,它们对空间数据存储组织方式也各有不同,如Shapefile空间数据和属性数据存储在不同的文件中,Oracle、SQL Server除了支持标准的SQL语言外还拥有各自特有SQL语言,此外这两种数据库既可以像ArcSDE那样将一个要素类分别存储在几个表中,也可以将空间数据和属性数据存储在一个数据表中。因此本平台设计了统一的数据访问层和数据模型层,屏蔽各种存储格式的差别,设计方案如下:

1)在开发数据访问层时,主要使用了提供者模式(provider pattern)的设计思想,设计 IProvider接口,定义了空间数据库常用的操作,包括属性查询、空间查询、查询要素的数目、查询对象ID,以及获取空间参考信息等。

2)针对不同的文件、数据库编写对应的数据访问类,这些类都实现了IProvider接口,这样上层开发人员在对数据进行操作时不需要知道实际的数据访问类,只需要调用IProvider接口。

3)为了屏蔽空间数据与属性数据分离存储与集中存储的区别,平台设计了FeatureDataTable、FeatureDataRow等类型,在逻辑上实现空间数据与属性数据一体化访问,从用户的角度来看IProvider只对Feature操作,而不是针对某个表或者文件。

(3)空间数据可视化技术

空间数据可视化采用了与设备无关的设计方案,针对符号化与专题制图的需求定义了一系列的接口方便用户使用,设计方案如下:

1)设计IStyle接口,该接口定义了显示的最大、最小比例尺等最通用的符号化信息,实现它的类型则包含了线型、填充样式等具体的符号化信息。

2)设计ITheme接口,该接口定义了根据要素属性信息获取IStyle对象的方法,即实现该接口的类需实现专题制图算法,系统调用ITheme接口来获取专题图中每个地理要素的符号化信息。

3)设计Renderer类,该类根据获取的IStyle对象,应用IStyle对象中定义的线型、填充样式等信息将要素绘制在内存中的位图对象中。

4)根据不同的需求将Renderer绘制的内存中的位图输出到不同的设备上,如桌面软件则输出到屏幕,网络地图服务器则通过HttpHandler输出为二进制流,以实现地图服务。

(4)地理信息服务化技术

地理信息服务化技术需要解决的问题是在空间数据访问组件、空间数据可视化组件基础上如何通过标准的Web服务接口对外提供空间数据的查询服务和地图服务,在这方面本平台采用了如下的方案:

1)分析 OGC规范中的 WMS、WFS、WCS、WMTS等服务的各种操作及其对应的参数,将不同的操作请求封装为不同的Operation类型并实现,这些Operation调用空间数据访问组件及空间信息可视化组件来完成所请求的功能。

2)设计调度器Dispatcher类型,解析客户端发送过来的请求,提取其操作参数及其他参数,创建对应的Operation并执行。

3)将Operation执行的结果写入服务器响应,完成服务操作。

(5)地理信息服务负载均衡技术

为了保证地理信息服务可用性与性能,平台采用了多种负载均衡设计,具体方案如下:

1)将不同级别的瓦片、不同的地理信息服务运行于不同的计算机集群中,避免服务集中、访问集中的情况。

2)对于同一个服务建立多个集群,使用不同的域名,增强可用性与性能。

3)QuickMap Application二次开发包内置了客户端负载均衡算法,主动避免每次都访问同一个域名中的服务。

四、应用情况

1.在电子政务方面

于2010年12月完成的“江苏省水利地理信息系统”采用了本项目中QuickMap Application二次开发模板中的插件式客户端框架,实现了多源地理信息服务聚合,系统具有灵活的扩展性。该项目被鉴定为处于国际先进、国内领先水平。

基于QuickMap平台开发的“江苏省第三次全国文物普查不可移动文物管理信息系统”于2011年12月通过江苏省文物局组织的专家组的验收,专家组认为该系统利用自主知识产权软件开发的系统界面设计、数据挖掘、分类专题统计等方面的功能具有创新,达到了国内先进水平。

基于本平台开发的“南京文物管理信息系统”已经开发完成,系统实现了文物查询、统计图表生成、考古勘探发掘申报表生成、文物空间位置以及属性信息修改等功能。

基于本平台开发的“江苏省广播电影电视局数字电影流动放映监管系统”实现了按市、县、院线对放映电影的内容、广告内容、场次的监管,提供了电影放映机的历史轨迹回放等数字电影流动放映监管工作中所需要功能。

以上应用系统有力地支持了相关业务部门的日常管理工作,提高了业务管理水平和工作效率,有的行业实现了从纸质媒体向信息化管理跨越。

2.在公共服务方面

基于本平台开发的“天地图·武进”实现了“天地图”所规定的服务和功能之外,还通过本平台的数据挖掘工具采集了团购信息、房产市场信息以及公交站点、路线信息等,丰富了“天地图”服务的内容。

五、结束语

QuickMap网络地图服务平台作为笔者所在单位自主研发的基础GIS软件,其功能、性能能够满足大多数非专业GIS应用部门对空间地理信息服务发布与应用开发的需求,在弱、中型WebGIS应用中完全可以替代商业GIS软件,具有广阔的应用前景。

下一步,本平台将围绕地理信息公共服务平台、“天地图”等项目建设,进一步增加适用的功能,改进其性能并将其打造为市县级地理信息公共服务平台的核心软件。

[1]张书亮,闾国年,李秀梅,等.网络地理信息系统[M].北京:科学出版社,2007.

[2]LI SM,SABOROWSKI J,NIESCHULZE J,et al.Web Service Based Spatial Forest Information System Using an Open Source Software Approach[J].Journal of Foresty Research,2007,18(2):85-90.

[3]曾侃.基于开源数据库PostgreSQL的地理空间数据管理方法研究[D].杭州:浙江大学,2007.

[4]王少波,解建仓,王晓辉.基于OGC WMS规范的Web-GIS开发与应用[J].计算机工程与应用,2006,42(35):226-229.

[5]冯亦参.基于geotools实现WebGIS应用软件[J].微计算机信息,2006,22(11-1):260-261.

[6]国家测绘局.国家地理信息公共服务平台技术设计指南[R].北京:[s.n.],2009.

猜你喜欢
空间数据插件组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
自编插件完善App Inventor与乐高机器人通信
U盾外壳组件注塑模具设计
基于jQUerY的自定义插件开发
元数据驱动的多中心空间数据同步方法研究
MapWindowGIS插件机制及应用
风起新一代光伏组件膜层:SSG纳米自清洁膜层
基于Revit MEP的插件制作探讨
基于文件系统的分布式海量空间数据高效存储与组织研究