梦华
摘 要:WebGIS技术能在网络上发布空间地理数据,为用户提供数据浏览、分析、查询等功能,实现对地理信息的操作与共享。针对智慧水利系统的特点及搭建技术,本文提出了一个基于开源MapServer与PostgreSQL(PostGIS)的信息发布系统构建方法。通过配置MapFile,实现基于地图服务器MapServer并以开源空间数据库PostgreSQL(PostGIS)为数据源的空间地理信息的发布。结果表明:通过MapServer和PostgreSQL(PostGIS)等WebGIS相关技术,能搭建一個开源地理信息数据发布平台,为实现智慧系统的水利信息管理与更新、共享和发布提供技术支撑。
关键词:WebGIS;MapServer;PostgreSQL;PostGIS
中图分类号:P283.7;TV87 文献标识码:A 文章编号:1003-5168(2018)23-0028-03
Application of WebGIS Technology in Intelligent Water Conservancy
MENG Hua
(Jilin Province Photo Surveying and Mapping Co., Ltd.,Changchun Jilin 130012)
Abstract: WebGIS can publish spatial geographic data on the network, provide users with data browsing, analysis, query and other functions, and realize the operation and sharing of geographic information. Aiming at the characteristics and construction technology of intelligent water conservancy system, this paper implemented an information publishing system construction method based on open source MapServer and PostgreSQL (PostGIS). By configuring Mapfile, the publishing of spatial geographic information based on MapServer and open source spatial database PostgreSQL (PostGIS) was realized. The results showed that an open source geographic information data publishing platform could be built through the related WebGIS technologies, such as MapServer and PostgreSQL (PostGIS), to provide technical support for the realization of intelligent system of water conservancy information management and update, sharing and publishing.
Keywords: WebGIS;MapServer;PostgreSQL;PostGIS
“智慧水利”的建设主要依托于通信、3S技术、虚拟仿真和物联网等各种现代化技术手段,实现某区域内水利信息资源的采集与整合、管理与更新、共享和发布,建设统一的支撑、应用、决策平台,形成较为完善的信息化管理系统,可有效提升区域水利综合管理能力和服务水平,为水利现代化打下坚实的基础[1,2]。
多样化的信息获取手段产生的大量不同种类的数据是构建“智慧水利”的基石。通过水利地理信息一张图,可以对降雨、灾害、水利设施等数据进行实时显示,但由于服务提供商更新不及时和收费高昂,提高了使用成本。随着信息获取手段的多样化,如何对数据信息进行有效管理显得尤为重要。开源MapServer和数据库的组合,可实现对海量信息数据的有效管理和发布,但国内关于MapServer管理数据库的相关技术资料有限。蔡毅[3]实现了MapServer与空间数据库的连接。开源软件与安装简便、帮助文档较多的商业软件相比,参数设置较为复杂,对使用者提出了较高的要求。本文归纳总结了数据入库、MapServer与空间数据库连接以及信息发布的方法,提出了一个基于开源MapServer与PostgreSQL(PostGIS)的信息发布系统构建方法。在设计数据的显示方式时,可以采用分层显示、重要性显示等多种方式,通过WebGIS矢量瓦片技术,实现查询功能的快速响应,节省系统资源,提高浏览器访问效率[4]。
1 系统框架
1.1 MapServer
MapServer是具有强大空间数据发布功能的开源软件,由美国明尼苏达大学(University of Minnesota)开发。MapServer是一个典型的基于胖服务器端/瘦客户端模式的CGI实时地图发布平台,当客户端发送数据请求时,服务器端基于MapFile实时地处理空间数据,并将产生的地图数据返回给客户端显示。其常与客户端组件OpenLayers、瓦片缓存等相关技术结合,构建一个完整的WebGIS系统[5]。MapServer支持多种数据类型,能方便地将空间数据、非空间数据在WebGIS中整合起来,有强大的空间信息网络发布功能[6]。同时,MapServer支持投影变换和字型定制,支持不同比例尺下地图要素显示的自动控制等。
MapFile作为MapServer应用的自定义属性配置文件,以.map为文件后缀,能定制MapServer的所有属性,如不同图层的绘制及其显示样式和查询方式[7]。MapFile的配置由基本设置、Web设置、Legend设置、Scalebar设置、Layer设置和Ootputformat设置等几部分组成[8]。在Layer的设置中应注意,MapServer发布的地图由不同的Layer叠加,叠加的顺序与各个Layer在MapFile中出现的次序相反[9]。如果MapFile配置信息不规范,MapServer将無法正常显示[10]。
MapServer是WebGIS系统的一个重要组成部分,其有两种操作模块:CGI和MapScript,均可在服务器端使用[11]。
1.2 MapServer工作流程
MapServer的工作流程(见图1)为:由Web服务器将用户的访问请求发送到MapServer;由设置中定义的MapFile路径读取数据来进行制图表达。数据库将空间数据和属性传递给MapServer并进行处理,由GD Library将数据转换成JPG或PNG。通过编辑MapFile中的有关属性,就可由指定的Template file进行制图表达,并对浏览器中MapServer Application的显示样式进行定制。待制图完成后,保存至客户端参数所指定的路径,通过Web服务器传回到客户端进行显示[12-14]。
1.3 运行环境
利用开源软件便于用户根据具体需求来定制。在此,笔者选用以下软件搭建了一个信息发布系统。
①WebGIS服务器:MapServer。
②数据可视化工具:Quantum GIS。Quantum GIS(QGIS)基于跨平台的图形工具QT软件包,是一款界面友好的GIS数据编辑显示软件,可为MapFile文件的各种属性编辑和显示提供了平台[13]。
③Web服务器:Apache。Apache是一个功能强大的Web服务器,也是最常用的Web服务器端软件之一。
④数据库:PostgreSQL。PostgreSQL是以PostGRES为基础的开源对象关系型数据库管理系统。PostGIS是基于PostgreSQL的空间数据库扩展,能更方便地管理空间数据。
⑤发布界面:Ka-Map。Ka-Map是一个界面风格类似于Google Map的MapServer前端工具,具有瓦片地图缓存功能,可提高浏览器渲染效率、节省服务器资源[4]。其与MapServer结合紧密,通过提供的JavaScript API接口,就可利用浏览器的特点开发支持地理空间数据的传输与表达的高度交互性Web-Mapping接口[12]。
2 基于MapServer的在线地图发布
2.1 数据库的选择
pgAdminⅢ是一个管理、维护PostgreSQL数据库的图形界面管理工具。其主要通过对postgresql.conf和pgpass.conf等文件进行编辑来优化PostgreSQL的性能。在这里用pgAdminⅢ建立一个空间数据库(如图2所示),然后将Shapefile导入数据库中。
2.2 配置MapFile文件
2.2.1 MapFile的生成。MapFile是一个结构层次清晰的文件(如图3所示)。在MapFile的属性对象中,最主要的是LAYER对象。MapFile文件中至少应含有一个LAYER对象,其在MapFile中的顺序与系统生成的图层顺序相反。如果MapFile丢失了LAYER对象,或者LAYER属性值发生错误,将导致MapServer不能正常运行。MapFile中的属性对象较多,如WEB、LEGEND、SCALEBAR、LAYER等[9]。
在开发过程中,MapFile文件的编辑是地图配置的重要一步,其控制着MapServer的制图表达和显示样式。项目中的各类图层众多,属性参数复杂,人工编写MapFile效率不高且容易出错。而通过Maplab和Quantum GIS也可以来编写MapFile,如使用功能强大的轻量级桌面GIS软件Quantum GIS,可对发布的图层类型、颜色、显示样式、比例等属性进行编辑,最后可得到完整的MapFile。具体过程为:通过Quantum GIS导入相应的Shapefile文件后,可以在可视化界面上进行显示样式上的调整,并保存为.qgs项目,再使用Quantum GIS中的“插件→MapServer Export”选项生成MapFile文档。但是,通过Quantum GIS自动生成的MapFile需要进行人工编辑,去除一些冗余无用信息[3]。
2.2.2 MapFile的编辑。此处需重新编辑并添加MapFile的部分属性,将读取本地的Shapefile文件改为连接postgis,如下所示:
将原属性DATA "HYDA"修改为以下内容:
CONNECTIONTYPE postgis
CONNECTION "dbname='wmapdata' host=localhost port=5432 user='postgres' password='123456' "
DATA 'the_geom FROM "HYDA" USING UNIQUE gid USING srid=-1'
得到基于空间数据库的在线信息发布系统界面,如图4所示。
3 结语
水利行业是一个数据信息较为密集的行业。面对海量数据,需要建立大型水利信息数据库对其进行分析、处理。这不仅是建立智慧水利信息系统的必要条件,也是部门之间信息共享的基础。各类信息的共享与融合,在很大程度上能减少重复生产、降低生产成本、节约资金。而基于WebGIS技术,水利部门可以更好地与其他相关部门如地质、环境、农业、林业等部门进行数据分享与综合,为科学决策提供技术支撑。
参考文献:
[1]曹宏文.数字水利到智慧水利的构想[J].测绘标准化,2013(4):26-29.
[2]郑灿堂,王庆华,张洪芳.浅谈“智慧水利”[J].山东水利,2012(7):1-3.
[3]蔡毅.基于WebGIS的路网交通信息系统关键技术研究与系统设计[D].广州:华南理工大学,2012.
[4]唐帅,姬光荣,王连波,等.辽河口湿地管理信息系统设计与实现[J].测绘科学,2013(1):90-92.
[5]高进.基于MapServer的电子海图服务系统研究[D].大连:大连海事大学,2013.
[6]赵慧芬.基于MapServer和Openlayer的WebGIS开发[J].测绘与空间地理信息,2013(9):100-101.
[7] Vatsavai R R,Shekhar S,Burk T E,et al. UMN-MapServer: A High-Performance, Interoperable, and Open Source Web Mapping and Geo-spatial Analysis System[C]// International Conference on Geographic Information Science. Springer Berlin Heidelberg,2006.
[8]韩坤英,庞健峰,逯永光,等.“同一个地质”计划的地质图空间数据网络共享研究——以中国1∶100万MapGIS格式的地质图数据为例[J].地球信息科学学报,2011(6):742-749.
[9]冉祥生.基于MapServer的空间信息发布技术研究[D].成都:西南交通大学,2008.
[10]刘旭林,赵文芳,刘国宏.基于WebGIS的气象信息显示和查询系统[J].应用气象学报,2008(1):116-122.
[11]臧卓,石军男,赵亮,等.基于MapServer的地图信息发布与查询——以洞庭湖湿地为例[J].湿地科学,2008(4):473-478.
[12]熊静,张箐.基于MapServer的遥感影像发布系统的研究[J].遥感信息,2007(1):53-57.
[13]李信鹏.基于Mapserver的遥感影像发布系统的设计与实现[D].北京:中国科学院中国遥感卫星地面站,2007.
[14]江宗展,史天元.由自由軟体MapServer探讨WebGIS建置[J].地籍测量,2004(4):46-79.