基于开源软件MapServer的WebGIS技术应用研究

来源 :信息周刊 | 被引量 : 0次 | 上传用户:shanxiaoqqqq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文阐述了利用开源软件MapServer进行WebGIS技术研究的重要意义,详述了MapServer的特点、体系结构及实现地图网络发布的关键技术,并结合应用实例,开发实现了基于MapServer的城市地名地址信息发布系统。
  【关键词】开源软件;MapServer;WebGIS;体系结构;地图发布
  随着WebGIS的应用日益广泛,如何低成本高效率地开发WebGIS已经成为GIS产业发展的迫切需求,基于MapServer的WebGIS解决方案正好迎合了这一点。MapServer是由美国明尼苏达大学和NASA 联合开发的一个具有强大的空间数据网络发布功能的开源WebGIS软件平台。一方面其强大的功能和商业软件相比毫不逊色,另一方面,作为一款开源软件,其具有新技术跟进及时、价格低廉、安全性好、代码透明等特点。目前,国外对MapServer的研究与应用已较为成熟,而国内的研究与应用甚少。通过开源软件技术路线,我们可以发展和掌握较多的自主知识产权, 对GIS产业国产软件的自主创新有着重要意义。
  1 MapServer特點
  MapServer是面向对象的,基本配置文件MapFile和MapScript模块的API组织都是基于对象的。MapServer基于C语言开发,利用多个开源的外部支持库(GEOS、OGR/GDAL、Proj.4等)实现对多种失量和栅格数据以及投影变换的支持。MapServer没有自己的数据格式,但可通过集合PostGIS和开源数据库PostgreSQL实现对地理空间数据的存储和SQL查询操作。同时,MapServer基于ka-map,MapLab,Cartoweb,Chameleon等一系列客户端JavaScript API来支持对地理空间数据的传输与表达,并且遵守开放地理空间协会(Open Geospatial Consortium,OGC)制定的WMS、WFS、WCS、WMC、SLD、GML和Filter Encoding等一系列规范。总而言之,从技术角度而言,MapServer比其他同类产品采用更便捷的安装方法,支持更多的数据类型,支持更广的系统平台。
  2 MapServer体系结构
  2.1 MapServer的数据源。从数据存储位置上划分,MapServer数据源有四种:1)本地数据:直接读取存储在本地的地图数据,如shappfile文件等;2)局域网数据:存储在局域网数据服务器上,基于TCP/IP协议通过空间数据引擎或空间数据库访问,如ArcSDE、Oracle Spatial等;3)广域网数据:存储于远程数据服务器上,基于HTTP 协议接收远程发布的遵守OGC互操作规范的地图数据,如Web地图服务WMS (Client / Server)等;4)分布式数据:存储于多台数据服务器上,通过“融合(Fusion)MapServer”机制实现数据集成与共享,类似于ERSI用“版本”来管理工作流的方式(Managing work flow with versions)[1]。从数据存储格式上划分,MapServer数据源主要有矢量地图数据和栅格地图数据,通过使用GDAL/OGR外部支持库来实现对多种矢量及栅格数据访问的支持,详细的支持数据格式列表可见http://www.gdal.org[2]。2.2 MapServer的核心--MapServer CGI程序。MapServer实际运行时在物理上就是一个CGI程序。CGI主要的功能就是在服务器应用程序和客户之间传递信息,其工作流程为:当浏览器通过URL告知Web Server调用MapServer CGI模块时,Web Server就为CGI模块创建一个进程(CGI程序);CGI模块运行并加载URL指定的MapFile文件,读取MapFile文件中的TEMPLATE文件(HTML文件),并将TEMPLATE文件中CGI 变量的替换变量(template substitutions)替换成具体的值(同时根据MapFile中指定的路径读取相关地图数据);处理完TEMPLATE文件后,CGI模块将TEMPLATE文件处理结果以HTML的形式返回给Web Server,Web Server再将HTML文件输出到用户浏览器上。这时TEMPLATE文件(HTML文件)就作为用户的交互界面。2.3 MapServer的地图服务接口类型。MapServe使用许多开源类库来完成数据格式转换、地图投影转换等,而本身专注于地图绘制、地图服务接口环境、兼容OGC互操作规范等方面。MapServer的地图服务接口类型主要有:1)Mapscript模式的地图服务:MapServer的Mapscript支持多种高级脚本程序语言(PHP、Python、C#等)生成交互式的Web地图服务程序;2) CGI模式地图服务:使用"HTTP GET"或者"HTTP POST"两种方式接受参数输入,动态创建地图或者执行查询操作;3) OGC互操作规范服务:支持Web地图服务WMS (Client/Server),Web地图要素服务WFS (Client/Server),Web制图环境WMC, Web图层服务WCS[3].三种接口类型运行时在物理上均是CGI程序,均读取相同的MapFile地图配置文档,MapFile(*.map文件)是MapServer数据的核心,它将各种地图要素组织成具有层次关系的对象系统,定义了MapServer加载的数据中的对象之间的相互关系,数据来源,使用的数据格式,用户交互和对OGC 协议的支持等[4],类似于ArcGIS的mxd地图配置文档。MapFile文档的编辑方式很多,可以用专业地图文档编辑工具也可以直接用文本编辑器。MapServer体系结构图如图1所示。
  3 地图网络发布的实现
  3.1构建MapServer开发平台。在进行MapServer开发前首先需要搭建好基础开发平台,本文选择了如下开源软件来配置基础开发平台:Web服务器为Apache2.2.4,WebGIS服务器为MapServer4.10.1,数据库服务器为PostgreSQL/PostGIS( Geographic Object for PostgreSQL)(采用局域网数据)。对初涉者来说构建MapServer开发平台较为困难和繁琐,因为需要编译MapServer自身及其所需的大量开源支持类库的源代码。MapServer官方网站发布了已经编译好的版本MS4W(MapServerForWindows),其安装过程较为复杂,可参见参考文献:[4]。MapServer配置好后就可以用其专用的开源工具MapLab来配置MapFile文件了,如图2所示。也可以用文本编辑工具(如写字板)直接编辑*.map格式的文件来配置MapFile文件。3.2开发方式选择。MapServer有两种开发方式:MapServerCGI和MapScript。本文采用了MapScript结合PHP的开发方式。利用MapScript模块就需要其他服务器端解决方案(指脚本语言),如PHP(以CGI模   块安装在WebServer上)。MapScript模块作为PHP的扩展模块,放在PHP安装路径的extensions目录下。MapScript模块保留MapFile文件的层次对象结构,向PHP提供对象结构的API。那么,与 MapServer CGI模块无法灵活修改不同,程序员在服务器端就可以使用PHP通过调用MapScript的API灵活的选择、修改MapFile文件[5]。
  同时,结合PHP对众多数据库——非空间数据库,如Oracle, MySQL等的支持,使MapScript在WebGIS中整合空间数据和非空间数据变的容易。
  虽然可以通过修改源代码来使MapServer CGI具有需要的特性,但难以实现较为复杂的动态交互,而利用其他服务端脚本语言和MapScript可以更容易实现复杂的WebGIS功能。
  5 结束语
  MapServer通过支持OGC协会的若干标准,支持分布和互操作。不论是使用MapServer CGI模块或服务端脚本语言结合MapScript,都可以实现服务端与客户浏览器的动态交互。MapServer在网络地图发布方面的强大功能有待进一步探索,对于从事WebGIS开发的组织而言,研究MapServer无疑符合其长远利益。本文对MapServer的原理及应用只做了初步探讨,旨在抛砖引玉。
  参考文献:
  [1]胡楠,闵星.基于MapServer的网络地图发布技术应用研究[J].天津测绘,2010,5:45-46
  [2]宋现锋,刘军志等.开源代码技术的FLASH地图实现方法[J].地球信息科学,2006,12:101-105
  [3]熊靜,张箐.基于MapServer 的遥感影像发布系统的研究[J].遥感信息,2007,1:53-56
  [4]Jeff Mckenna. MS4W(MapServer For Windows)Installation[EB/OL]. [2012-11-26].http://maptools.org/ms4w/index.phtml?page=README_INSTALL.txt
  [5]Jeff McKenna.PostGIS/PostgreSQL[EB/OL]. [2012-11-26].http://mapserver.gis.umn.edu/docs/reference/vector_data/postgis/
  [6]杜雄.基于MapServer数据互操作与Web共享模式的研究[EB/OL].[2013-10-16].http://www.cnblogs.com/charmdx/articles/450711.html
其他文献
【摘 要】仪表作为自动化系统中的一个重要组成部分,大量的采用低电压的模拟量作为传输信号在工作环境较恶劣现场,存在着各种各样的干扰源,极易干扰测量信号的传输。在仪器仪表设计和使用时,我们必须对工作环境作全面的分析,确定干扰性质,采取相应的抗干扰措施。  【关键词】仪表测控;抗干扰;技术;通用抗干扰技术  一、干扰源及对系统的干扰  干扰的来源有很多种,我们通常所说的干扰是电气的干扰,但是在广义上热噪
期刊
【摘 要】随着社会和经济的快速发展,在人们的生产生活中电气工程及其自动化技术得到广泛的应用,成为当前我国经济发展的重要推动力,同时,它也提高了人民的生活质量,在促进中国经济发展中有着至关重要的地位,因此,本文就电气工程及其自动化存在的问题、电气自动化技术的发展对策及意见、电气工程中自动化技术的应用优势及电气自动化在电气工程中的具体应用进行分析。  【关键词】浅析;电气自动化;电气工程;应用  引言
期刊
【摘 要】该管道支架约建于1996年,原设计为现浇钢筋混凝土框架与钢管桁架组合结构。管道支架总长度约为1016m。混凝土框架部分主要由单层单向门型管道支架及方型管道支架两种形式组成,钢桁架结构采用焊接钢管制作。曾于2009年在该管道支架部分区域钢桁架顶部接焊一层钢桁架结构,并对原钢桁架下弦杆跨中部位采用焊接槽型钢增大截面法进行了加固处理。该构筑物上部架设管道主要为输送生产用液体和气体。现部分钢筋混
期刊
【摘 要】本文分析了建筑施工中渗漏的原因,并对建筑施工中防渗漏技术的各个方面进行了分析,并给予了一些可行性的建議。  【关键词】建筑施工;防水防渗;施工技术  前言:  随着我国国民经济的不断发展,房地产行业和建筑行业也是在如火如荼地发展着。不论是国家的经济增长形势,还是人民群众的生命健康、财产安全都与建筑物的质量有着不可分割的关系。出于提高人民生活水平的目的,有必要加强对房屋建筑工程的质量进行管
期刊
【摘 要】针对该半地下车库部分框架柱构件存在侧向变形及混凝土开裂现象,通过对该半地下车库现场检查、检测、测量观测,该类损坏主要是由于地库筏板基础与相邻住宅楼基础产生差异沉降(不均匀沉降)引起的。现部分框架柱及个别框架梁构件损坏较为严重,形成了危险点,存在较大安全隐患,应及时进行临时支顶并采取加固措施,并对上部主体结构构件的变形情况进行监测,以掌握该建筑变形动态,确保建筑物主体结构安全。  【关键词
期刊
【摘 要】本文通过成彭支线牵引变电所继电保护的基本构成、成彭支线牵引变电所继电保护调试的意义、成彭支线牵引变电所继电保护的运行模式、成彭支线牵引变电所继电保护装置的应用价值以及成彭支线牵引变电所继电保护调试方案的实施进行简要分析。  【关键词】成彭支线;牵引变电所;继电保护;研究  一、成彭支线牵引变电所继电保护的基本构成  1、实际测量  实际测量是对数据进行采集和处理并保护判据计算的过程。测量
期刊
【摘 要】城市道路始于道路设计人员,好的设计方案是提高道路施工质量,提升路网通行量的关键。本文对城市道路常见设计难点、存在的问题及改进建议进行了分析。  【关键词】城市道路设计;存在问题;改进建议  前言:  城市道路设计从业者,首先必须要有科学的交通工程理论修养,要多去实地调研,采集详实的市场基础数据,根据道路施工条件以及建设单位的预算,兼顾城市发展以及出行的便捷性,通盘考虑,开动脑筋,提出科学
期刊
【摘 要】随着城市建设进程的不断加快,城市交通拥挤问题日益凸显,而大力发展城市公共交通已成为当前的必然。因此,本文中结合信息技术在交通运输管理中应用的意义及交通运输管理中的信息化技术建设的主要作用,针对信息技术在交通运输管理中的实际应用与完善交通运输信息化技术建设的相关措施等内容,进行了分析,以供参考。  【关键词】信息化技术;交通运输管理;实际应用;措施  一、信息技术对交通运输管理的积极作用 
期刊
【摘 要】本文通过工程实例,对某砖混与框架混合结构的接层改造进行了可行性分析。主要包括对结构进行现场查勘、检测及计算,最后依据分析结果及相关技术规范和鉴定标准,对该混合结构做出接层可行性评价,并依据鉴定结论给出可行的处理措施。  【关键词】可行性分析;接层改造  1.建筑概况  该建筑建于1993年,为主体三层砖混、局部二层钢筋混凝土框架混合结构综合楼。建筑总平面大致呈Z形,总长度为37.4m,总
期刊
【摘 要】随着社会的跨越发展和民族工业的腾飞进步,离心压缩机在当前的工业运营过程中得到了越来越广泛的应用。本文将从离心压缩机故障诊断技术的发展现状谈起,结合离心压缩机的相关故障类型,详细分析研究离心压缩机在实际使用过程中的故障问题,并给出相关的科学可行的处理措施或建议。  【关键词】离心压缩机;常见故障;诊断处理  引文:  随着现代社会科学技术的大力发展,离心压缩机在工业生产领域的利用率越来越高
期刊