您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 旅游娱乐 > 开源GIS的研究与应用-以MapServer为例-何正国
开源GIS的研究与应用─以MapServer为例何正国摘要:随着计算机技术的发展和软件即是服务概念的确立,越来越多的软件厂商加入到开源社区来,这样也促进了开源软件的发展。本文对一些著名开源的GIS软件进行简单地介绍,着重介绍了开源MapServer软件,并基于MapServer进行了开发WebGIS试验。关键字:GIS,开源GIS,OpenGIS,互操作,MapServer,开源软件KeyWord:GIS,OpenSourceGIS,OpenGIS,GISinteroperability,MapServer,OpenSourceSoftware1、引言“3S”技术是目前IT领域的热门话题,而地理信息系统(GIS)随着GoogleEarth的流行被越来越多的人所熟知,它现在关连着我们日常生活的方方面面:它是科学家手中的显微镜,也是百姓出行的指南针;既是将军运筹帷幄的沙盘,也是出租车司机的导航仪;上能助嫦娥奔月,下能检测印度洋海啸;大能纵观全球,效能观察办公室布局[1](参见参考文献3)。在GIS流行的背后,也有越来越多的开源GIS在默默贡献自己的力量。GIS在取得巨大发展的同时,也暴露出来一些问题:商业GIS软件的使用和维护费用越来越高,总多商业软件GIS的数据和操作并非完全能够转换和共享,造成一些信息孤岛。开放式地理信息系统联合会(OpenGISConsortium简称OGC),是在1994年成立的一个非盈利组织。OGC主要研究和建立了开发式地理数据交互操作规程(OpenGeodataInteroperabilitySpecification,简称OGIS),OGIS是一种规范,使用户和开发者能进行互操作。国际地理空间开发基金会(OpenSourceGeospatialFoundation)于2006年2月成立,OSGeo基金会的使命是支持开源地理信息软件和遥感软件的开发及推动其更广泛的应用,并对其支持的项目提供组织、法律和财政上的支持,促进OSGeo基金会基于地理信息开发标准软件及其互操作技术的开发、推广和普及。OSGeo中国中心2006年9月成立,它将帮助中国地区的用户和开发者更好地使用OSGeo基金会提供的源代码、产品和服务。OSGeo中国中心的成立必将推动开源GIS在我国地理空间信息系统研究方面的应用。2、开源GIS简介目前的开源GIS项目包含了各种层次的产品,有大型的桌面GIS如GRASS,也有目前比较流行的WebGIS如MapServer和Geoserver项目,还有开源的GIS数据库项目如PostGIS/PostgreSQLSpatialDatabase,还有一些数据转换如OGR和GDAL名,地图投影算法库如Proj4和Geotrans等开源项目。各开源项目关系如图1所示:开源GIS还远不止图中所列的项目,图1中所列出的项目是类型开源项目中比较出名的一些代表。GRASS是大型的GIS系统,最早由美国军方建筑工程研究实验室构建维护,后来贡献给开源社区,目前GRASS已经覆盖料大多数GIS系统的操作函数,超过300个经典算法。GRASS就是一个开源版本ArcGIS。QGIS是一个用户界面友好的桌面GIS系统,使用基于QT的图形库实现,还有大名鼎鼎的KDE图形和GoogleEarth也是基于QT构建。而且QGIS可以很好地支持GRASS的算法接口,成为了GRASS的一个重要的前端表现工具,QGIS就是一个简化版本的GRASS。GRASS和QGIS都是跨平台的桌面GIS软件,可以运行在很多操作系统上,这一点与很多商业GIS系统也有不可。目前在国内比较流行的4926WebGIS有MapServer和GeoServer项目,MapServer底层采用C来编写,基于CGI脚本实现,页面调用支持PHP、JSP等多种语言,并对OGC的WMS和WFS提供支持。GeoServer基于Java和GeoTools库开发,它的功能全面遵循OGC开发标准,GeoServer对发布WFS-T和WMS提供便捷的支持,并以XML文件描述所有地图服务。基于EclipseRCP的uDig开源项目既是一个GeoSpatial应用程序也是一个平台,开发者可通过这个平台来创建新的在uDig基础上衍生的应用程序,uDig是Web地理信息系统的核心组件。OpenLayers是一个用户开发WebGIS客户端的JavaScript包,实现访问地理空间数据的方法都符合行业标准,采用面向对象方式开发,并使用来自Prototype.js和Rico中的一些组件。PostgreSQL是一个开源的基于对象的数据,PostGIS则是为PostgreSQL提供空间支持,类似ArcGIS的空间数据引擎ArcSDE。3、MapServerMapServer最初名为UMNMapServer,UMN(UniversityofMinnesota)是明尼苏达大学的缩写,它起源于明尼苏达大学自然资源学系和NASA(美国航空航天局)合作的UMNForNet项目。MapServer的体系架构如2所示:QGISSQLMapserver(OpenGISWebMapServer)GeoServer(OpenGISWebFeatureServer)OGRLibraryGDALlibraryRasterData:TIFF、JPG、GIFVectorData:shp、tab、GMLPostGIS/PostgreSQLSpatialDatabaseGeoToolsGRASS互联网OpenLayersuDigHTTP/XMLHTTP/XMLHTTP/XMLHTTP/XMLSQL图1开源GIS关系图局域网4927MapServer主要包括两部门:外部调用和内部处理部分,外部调用主要是通过调用开源的库来访问空间数据,内部处理主要是通过GD投影变换来对地图进行渲染。MapServer的工作流程如图3所示:①由ApacheWebServer将用户的访问参数传送给MapServer;②MapServer(mapserv)接收到WebServer传送的参数时,先由参数所定义文档(mapfile)获得空间数据的名称等相关信息;③获得空间数据信息后,向空间数据发出数据服务请求;④在得到相应空间数据包括属性信息后,再把这些信息传递会MapServer;⑤MapServer通过通过空间变化等一些列处理,由GDGraphicslibrary将空间数据转成PNG或者JPG图形;⑥GIS图形文件生成后,MapServer依照定义抓取指定的模版文档(templatefile),把相应的图形动态形嵌入html文档;⑦完成后,将生成的符合浏览器标准的HTML文档由WebServer将结果送给客户端显示。4、基于MapServer的WebGIS开发MapServer是运行在CGI的环境下,它最初的目标是在CGI的环境下用户能够通过浏览器能够访问地图,在CGI的环境下,Apache通过浏览器传递的变量触发MapServer,通过变量信息,MapServer产生供浏览器访问的地图和网页。一个CGI环境下的基于MapServer的WebGIS开发,主要需要定义好:mapfile和HTML的初始化文件。mapfile文件定义了地图对象和对象的表现形式,是地图的配置文件。mapfile文件示例如下:空间数据渲染地图PostgreSQLPostGISShp、Tab等MapServerlibJPEGFreeTypeApacheWebServerGDlibrarylibpngzlibGDAL/OGRProj.4图2MapServer架构ApacheWebServerMapServer(mapserv)空间数据GDGraphicsLibrarymapfilefemplatefile(html)图3MapServer工作流程图①②③④⑤⑥⑦4928SIZE400300#定义图片文件大小IMAGECOLOR255255#定义图片文件颜色IMAGETYPEJPEG#定义图片文件类型WEBTEMPLATE/var/定义生成图片的路径和生成的HTML文件还有一个很重要是要初始化传递给MapServer的参数,示例代码如下:bodyformmethod=POSTaction=/cgi-bin/mapservinputtype=submitvalue=ClickMeinputtype=hiddenname=mapvalue=/home/mapdata/hello.mapinputtype=hiddenname=map_web_imagepathvalue=/var/=[img]width=400height=300border=0/body基于MapServer开发的WebGIS,运行界面如图4所示:5、结论开源软件相对于安装方便、帮助文档齐全的商业软件,它对用户的要求相对要高,它往往需要用户有GIS概念基础,需要多操作系统、多数据库、多格式有所掌握,使用起来目前还不是太简单,然后开源有着很好的开发型和扩展性,吸引着越来越多的学者和研究人员加入开源社区中来,随着开源软件的安装、帮助文档、以及软件的维护和支持的改善,开源GIS软件有着美好的未来。图4基于MapServer开发的WebGIS定义访问CGI程序定义mapfile4929参考文献:1、BillKropla.BeginningMapServer:OpenSourceGISDevelopment20052、孙剑.开源再显空间信息魅力,软件世界,2007年22期3、陈杰.GIS的开源夜宴,软件世界,2006年20期4、、、、作者简介何正国(1974—),男,硕士研究生,广州市城市规划自动化中心。4930
本文标题:开源GIS的研究与应用-以MapServer为例-何正国
链接地址:https://www.777doc.com/doc-3925207 .html