【php精品源码栏目提醒】:网学会员,鉴于大家对php精品源码十分关注,论文会员在此为大家搜集整理了“基于MapServer的地图信息发布与查询——以洞庭湖湿地为例 - 勘查设计”一文,供大家参考学习!
第6卷第4期2008年12月湿 地 科 学WETLAND SCIENCEVol.6 No.4Dec.2008收稿日期:2008-06-24修订日期:2008-10-20基金项目:国家“十一五”科技支撑计划项目2006BAD23B0204-3和全球环境基金/中国国家林业局/联合国开发计划署项目CPR/98/G32资助。
作者简介:臧 卓1978-男辽宁省锦州人硕士讲师主要从事数字林业技术和遥感技术研究。
E2mail:zangzhuo163.com 3通讯作者:石军南教授。
E2mail:jiunnan000163.com基于MapServer的地图信息发布与查询———以洞庭湖湿地为例臧 卓1石军南13赵 亮1徐永新21.中南林业科技大学资源与环境学院湖南长沙4100042.湖南省林业厅野生动物保护处湖南长沙410007摘要:地图信息的发布和查询是WebGIS最重要的功能之一地图插件和开发平台的选用以及地图信息的组织对于满足系统功能要求和提高系统建设效率具有重要作用。
经过对现行WebGIS应用情况的分析进行了系统的设计和数据组织采用B/S结构利用.NET技术结合MapServer地图插件进行系统研发和功能实现开发出洞庭湖区湿地资源信息系统实现了地图的发布、查询和显示等功能。
该系统兼容性好、数据维护方便。
利用.NET技术和MapServer平台开发的湿地WebGIS比传统用
PHP语言开发的WebGIS执行速度更快代码的安全性更高而且其属性库和图形库的分离式设计提高了程序的可扩展性和数据库的稳定性。
MapServer湿地信息系统的开发实现了湿地资源信息的共享满足了系统设计要求达到预定目标为湿地WebGIS开发和应用奠定了基础。
关键词:地图信息发布与查询WebGISMapServer洞庭湖湿地中图分类号:P28 文献标识码:A 文章编号:1672-5948200804-473-06 由于湿地在人类社会中的重要作用人们开始在湿地环境变化过程、湿地资源合理利用、湿地生态系统的管理和立法与保护等方面进行深入研究利用3S技术准确监测湿地的变化及时掌握湿地的信息也成为湿地研究的重要手段。
Internet的发展和WebGIS技术的出现使湿地信息能够在大范围内实现共享使更多人可以方便地了解湿地相关知识不但推动了湿地的保护和监控工作而且增强了公众的湿地生态保护意识。
WebGIS技术已经应用到人们生活的各个方面其中应用最为广泛的主要是地理信息数据的发布、查询等1。
湿地WebGIS作为土地利用的一个分支最近几年发展较快2。
2004年段洪涛等人利用ARCIMS平台对中国湿地系统的框架进行了研究32005年韩敏等人利用JAVA语言和Web2GIS组件库构建了扎龙湿地地理信息系统42007年庞奎等人对黄骅湿地管理信息系统进行了整体设计5。
国外具有代表性的WebGIS软件主要有GoogleEarth、MicrosoftLiveLocal、WorldWind、GoogleMap、Yahoo等。
其中前3个软件采用的胖客户端模式即C/S模式后两个软件采用瘦客户端模式即B/S模式。
在功能上C/S模式系统除了地图浏览、查询等功能外还有地图飞行功能及3D显示功能等。
在地理数据方面国外的软件采用了地图数据和遥感数据相结合的数据供给方案增强了地理信息的真实感。
国内具有代表性的软件有Mapbar、MapABC、51ditu等它们均采用B/S模式构建地理数据主要来源于地图数据几乎没有遥感数据而且在数据更新方面也不如国外的系统及时。
在生产中应用比较广泛的WebGIS平台有ARCIMS、GeoMedia、MapServerOpenMap、GeoServer等前两个是收费平台后3个是开源免费平台收费软件的服务功能更全面而开源软件的兼容性更好很多相关的用户为增加开源软件的兼容性会不断为其编写访问接口。
在众多的开源WebGIS平台中MapServer平台是一款非常优秀的产品有很多的用户和专家不断地进行完善使其在地理数据 474 湿 地 科 学6卷的发布速度方面比ESRI公司的ARCIMS平台快将近306。
从资金及系统的响应速度等方面的考虑本研究选用MapServer平台进行湿地WebGIS系统的开发。
本研究是以洞庭湖湿地为例建立与开发保护区级的湿地信息系统目的是发布与查询湿地资源空间分布信息。
基于WebGIS技术建立洞庭湖湿地信息系统对增强洞庭湖区湿地信息数据共享实时有效地监测和保护洞庭湖区湿地资源有着非常重要的意义对未来中国的湿地信息系统建设有一定的参考价值。
1 WebGIS平台构成本系统是利用.NET技术结合MapServer平台共同搭建的。
系统运行相对比较稳定而且安全性高可扩展性强。
1.1 MapServer简介MapServer是美国明尼苏达大学UniversityofMinnesotaUMN在20世纪90年代利用C语言开发的开源WebGIS7。
1.1.1 MapServer的特点MapServer的最大特点是开放性。
它是一个源代码公开的空间信息发布系统可以在多种系统环境下运行用户在免费使用的同时具有自行修改、复制以及再发布的权利。
MapServer的广泛使用也促进了其功能不断发展和完善。
除具有开源特性外MapServer还具有以下优点:①支持多种矢量和栅格的数据源并支持分块的矢量和栅格数据②支持用户定制的Template的输出③支持投影变换和TrueType字型标准④支持地图元素的自动控制和图像比例的自动调节⑤可以通过URL动态设置MapServer⑥支持FastCGI。
FastCGI是可伸缩架构的CGI开放扩展其主要作用是将CGI进程保持在内存中避免反复加载因此获得了较高的性能6。
1.1.2 MapServer的组成MapServer的核心部分是C语言编写的地图操作模块它本身许多功能的实现依赖一些开源或免费库主要有:制图库GD、正则表达式库Re2gex、数据压缩库Zlib、字体引擎FreeType2、动态投影变换组件PROJ.4、图形数据操作的API库GDAL/OGR、叠加操作库GEOS、客户端URL传输库libcurl、读写Tiff格式文件组件libTiff、字符集编码转换库libiconv等。
MapServer并不是一个完整的WebGIS系统它提供了两个操作模块:CGI和MapScript。
在CGI模式下MapServer利用GD库将空间数据转化成地理图形再传回到用户的浏览器。
用户不需要安装任何特定的浏览程序就可以通过浏览器对其进行操作8。
MapScript模式支持
PHP、Perl、Python、Java、C等多种编程语言910方便用户基于MapS2erver作进一步的开发。
DMSolutionsGroup就是基于
PHP的MapScriptAPI模块并调用MapServer的各种类及函数实现了强大的功能。
完整的MapServer应用还要包括一个很重要的文件———Mapfile11。
Mapfile是MapServer应用的结构文本配置文件。
它定义了地图范围告诉MapServer程序到哪里导入或者导出数据它还定义了地图的图层包括它们的数据源、投影以及符号表等通常以.map为扩展名。
MapServer根据Mapfile中定义的信息读取指定的模板templatefile进行html及画面显示的配置与相关资料图形如:比例尺寸样本图参考文字的制作及嵌入工作将动态生成的空间资讯图嵌入模板以生成能够供客户端使用的文件完成后返回客户端。
1.2 .NET技术.NET技术是微软大力推广的下一代平台技术自从.NET技术架构的正式发布此项技术也逐渐走向成熟与稳定先后发布了.netFramework1.0.netFramework1.1和.netFramework2.0直到现在的.netFramework3.5。
开发环境也从VisualStudio.net到现在的VisualStudio2008.net。
.NET平台的优点1213:完全的面向对象编程优秀的设计理念语言的无关性对动态Web页面更好支持高效的数据访问代码共享增强的安全性web服务的支持等。
.NET主要支持的语言有VB.NET和C.NET。
2 湿地地图信息发布与查询系统设计2.1 系统功能需求根据系统分析和设计要求本系统要实现的主要功能有:①地图的放大、缩小显示和屏幕移动。
②地图图层管理。
系统中共有20多个图层其中包括点图层、线图层、面图层和遥感数据图层需要对图层的显示进行勾选和屏幕刷新。
③点击图形查看属性通过属性查看图形以及遥感图像叠加 4期臧 卓等:基于MapServer的地图信息发布与查询———以洞庭湖湿地为例475 等功能。
其中的行政驻地、保护站、监测点3个图层要提供通过属性检索图形的功能其他图层提供普通的点击查询功能。
2.2 系统设计2.2.1 总体设计通过前面的分析可以了解湿地系统重在信息的查询系统需要更新部分属性数据图形数据并不经常更新因此本系统对图形数据的更新采用在客户机上修改然后再上传到服务器的方式。
系统总体设计框架如图1所示。
从图1中可知在系统中把图形库和属性库分开存放这是为了方便地图信息的检索和后期数据的更新、维护工作。
2.2.2 系统功能设计地图的发布和查询功能主要分为以下几个模块:图层显示模块、地图操作模块、地图检索模块。
图1 系统结构图Fig.1 Sketchofsystemstructure 图层显示模块主要是控制图层的显示功能。
有些图层如村驻地和遥感图像等数据量比较大会影响地图的显示速度因此可以通过图层显示控制模块来关闭不需要查看的图层。
地图操作模块除包括地图的放大、缩小、移动等基本功能外还增加了点击查看图形属性的功能方便用户查看地图的详细信息。
地图检索模块是为一些特殊情况服务的有的用户可能知道要查找地区的名称但不知道具体的位置那么系统中提供了通过属性值检索地图的功能此功能方便用户定位查找地区的具体位置。
2.2.3 地图数据组织本系统的数据库分为两部分:图形数据库和属性数据库。
图形数据又分为两部分一部分是矢量数据采用shp文件来存储shp文件中只包含图形的最基本信息即ID图形类型面积面状文件、坐标点状文件、长度线状文件等另一部分是已经处理好的不同时期遥感影像数据。
属性数据是对图形数据的补充它记录了图形数据无法表示的一些数据系统中对每一个图层都建立了相对应的属性数据表属性数据与图形数据是通过表名和表中的ID与图形对象的ID进行链接的表名与shp文件的名称一致例如TBL_DW.shp的属性表名为TBL_DW表中的ID与图形中的ID保持一致。
因此如果增加新的图层需要增加属性数据库连接以保证属性查询和搜索的准确。
3 系统开发3.1 环境搭建地图发布系统主要利用C语言和MapServer所提供的MapScript接口进行二次开发来实现。
C语言与
PHP语言和ASP语言不同的地方就是它的前台代码与后台代码已经完全分离这样的结构提高了系统的安全性增强了代码的可读性提高了开发的效率14。
利用.NET技术对MapServer进行二次开发时首先要搭建MapServer的.NET平台。
在.NET开发环境中添加MapServer的开发包文件MapS2erver的动态链接库的引用。
为了便于管理一般 476 湿 地 科 学6卷把动态链接库直接复制到项目的BIN目录中。
基于MapServer和.NET的WebGIS构架的地图发布与查询系统主要包括Map文件、地图数据文件和ASPX页面。
3.1.1 Map文件Map文件是一个MapServer应用的结构文本配置文件1516。
它定义了地图范围引导MapS2erver程序到哪里导入或者导出数据定义了地图图层包括它们的数据源、投影以及符号表在用C语言调用时会建立一个mapObj对象mapObj对象操作的就是Map文件。
3.1.2 地图数据文件经过数字化处理的统一标准的数据系统默认的数据格式是ESRI的shapefile格式。
3.1.3 ASPX页面用户和MapServer之间的界面。
系统可以调用MapServer在前台的ASPX页面上放置一个静态的地图图片为了让地图具有交互性将图片以图片标签的形式放置在ASPX页面上。
本系统的服务器上也装有IIS用来执行ASPX页面所发回来的请求。
在系统开发前要准备好地图配置文件即Map文件并在系统的配置文件中添加必须的全局常量一般情况主要是数据库路径本系统中包括地图数据路径、属性数据库路径和Map文件路径。
3.2 系统功能实现地图的发布共调用了4个ASPX页面。
其中一个是主窗口另外三个分别是主地图输出流、鸟瞰图输出流、比例尺输出流。
输出流通俗地说相当于一组图片只是这些图片是可以根据用户的操作发生相应的变化。
图形发布流程如图2所示。
在用户请求地图时主界面传给主地图输出流参数主地图输出流修改全局的mapObj对象然后比例尺和鸟瞰图输出流再调用全局mapObj对象修改自身的图片输出给用户。
图2 地图发布过程Fig.2 Procedureofmappublication3.2.1 主地图窗口显示主地图窗口的显示功能实际上是利用C语言和MapServer组件调用地图配置文件Map文件来实现的。
可以把Map文件看作一张地图通过修改Map文件中的参数可以修改地图的显示效果。
首先将修改后的参数传给mapObj对象ma2pObj就是从Map文件中读取的配置信息然后调用mapObj对象的draw17函数产生地图输出流并将其输出成image图片传给客户端并不是像用户看到的那样是一个图层一个图层输出的。
3.2.2 鸟瞰图与比例尺的显示鸟瞰图和比例尺的显示与地图的输出比较类似都是在后台画好图形后将显示的结果以图片的形式输出到客户端。
只是鸟瞰图和比例尺所调用的不再是mapObj的draw函数了而分别是drawReferenceMap和drawScalebar函数17。
3.2.3 属性和图形的检索功能鼠标点击图形查看其属性的功能是通过点击查询对象经对象ID搜索数据库匹配完成的。
在MapServer中提供了通过属性检索图形的函数queryByAttributesmapObjmapstringqitemstringqstringintmode17但调用这个函数要求系统的属性库与图形库不能分离因此本系统没有调用此函数采用了另一种方法通过属性值取得所要检索图形的坐标再通过坐标调用queryByPoint函数17实现从属性到图形的检索过程。
经过代码编写和系统调试实现了以上全部功能。
系统开发完成后的初始界面如图3所示左边为需要查看的图层上面是矢量图层下面是栅格的遥感影像右边是对页面进行操作的按钮和查询 4期臧 卓等:基于MapServer的地图信息发布与查询———以洞庭湖湿地为例477 图3 湿地地图信息发布与查询界面Fig.3 Interfaceofmappublicationandqueryofwetland的结果显示。
中间是地图的显示窗口。
地图显示窗口的下面是通过属性查看图形的检索窗口。
4 讨 论国内基于MapServer的WebGIS基本都采用
PHP语言本系统使用的是.NET开发环境中的C语言其优点就是在程序发布前已经把Web的后台请求编译成DLL库文件以后再执行时不需要再编译程序而
PHP语言是一种解释执行的语言每次执行时都要对代码进行解释编译过程。
所以利用.NET开发的WebGIS的执行速度要比
PHP语言开发的WebGIS执行速度快而且采用.NET开发的WebGIS的代码安全性比
PHP要高的多。
系统中图形库采用shp文件的形式进行保存属性库采用Access数据库保存数据这种设计的优点是可以提高系统的扩展性使用户可以方便维护WebGIS的属性数据也为系统的属性数据的共享提供了很好的底层支持缺点是在进行地图检索时要用鼠标点击坐标检索图形库把坐标转换成ID再通过ID检索属性库查找属性值虽然这样会降低检索时的速度但考虑到系统的未来功能扩展和数据共享在速度影响不大的情况下本系统采用图形库与属性库的分离的设计方案。
5 结 论采用.NET平台结合MapServer二次开发组件开发了洞庭湖区湿地监测WebGIS并实现了地图数据和遥感影像数据的叠加、放大、缩小、漫游、信息检索等功能。
系统的重点是信息的发布因此对地理空间信息采用文件组织形式存储属性数据采用数据库组织形式便于系统数据的共享与维护。
采用.NET平台和MapServer插件系统建设成本低、扩展性好具较强的兼容性。
基于.NET平台开发的WebGIS系统其开发和运行速度都优于传统的
PHP语言平台。
.NET平台对MapServer组件的调用非常方便只要将MapServer的组件引用到系统中就可以轻松调用。
.NET平台在开发过程中有可视化的开发界面大大提高了系统开发的效率系统开发编译完成后系统每次执行不需要再进行编译。
本系统中的部分功能还需要进一步完善如系统的图形在网络上只能展示给用户观看没有提供相应的图形数据编辑服务。
根据用户将来的需要图形管理功能还需要进一步完善和改进。
参考文献1 毛迎丹黄作维.基于WebGIS的土地资源地理信息服务系统研究J.安徽农业科技2008366:248524862492.2 侯 昀郭 佳高敬格.基于WebGIS的地价管理系统设计J.科技情报开发与经济2008183:174175. 478 湿 地 科 学6卷3 段洪涛张树清张 柏等.基于WebGIS的中国湿地信息系统研究J.湿地科学200424:279284.4 庞 奎张义文.基于WebGIS的黄骅湿地管理信息系统的设计J.科技情报开发与经济20071719:213214.5 韩 敏刘长山孙燕楠.基于网络的扎龙湿地地理信息系统J.计算机应用研究20056:136138.6 赵 博.GIS与MapServerJ.软件世界200610:4850.7 圣 荣刘友兆王 庆.基于开源MapServer的网络空间数据共享系统研究J.农业网络信息200711:5154.8 熊 静张 箐.基于MapServer的遥感影像发布系统的研究J.遥感应用20071:535775.9 宋现锋刘军志吴建国等.开源代码技术的FLASH地图实现方法———以MapServer_Ming为例J.地球信息科学200684:101105.10王瑞琴.WebGIS系统的另类设计构想与实现J.计算机工程与应用20054134:139142.11SongXFKonoYShibayamaM.2005.EnvironmentalCambo-dia:AnOpenSourceGISApproachtoWebMappingJ.Inter2nationalJournalofGeoinformatics11:63-70.12张 胜康志伟.基于.Net技术的WebGIS系统J.计算机工程20063215:106.13ChristianNBillEJayG.2006.ProfessionalC2005M.NewYork:JohnWileySonsInc.14asp.net入门Z/OL.http://msdn.microsoft.com/zh-cn/asp.net/aa336567.aspx.15MapFile文件对象剖析Z/OL.http://www.mapmax.cn/mapserver/index.phpoptioncom_contenttaskviewid33Itemid44.16MapfileReferenceZ/OL.http://mapserver.gis.umn.edu/docs/reference/mapfile.17MapScriptAPIReferenceZ/OL.http://mapserver.gis.umn.edu/docs/reference/mapscript.MapPublicationandQuerySystemofWetlandwithMapServer———ACaseofWetlandofDongtingLakeZANGZhuo1SHIJun2Nan1ZHAOLiang1XUYong2Xin21.SchoolofResourceandEnvironmentCentralSouthUniversityofForestryandTechnologyChangsha410004HunanP.R.China2.WildlifeProtectionDivisionForestryDepartmentofHunanProvinceChangsha410007HunanP.R.ChinaAbstract:ThepublicationandinquiryarethemostimportantfunctionsofWebGIS.Itisimportanttoselectthemapplug-inandtheplatformandhowtoorganizethemapinformationformeetingtheneedsofthesystemandraisingtheefficiencyofsystemconstruction.Inthepaperbasedontheanalyzingtheapplicationofcurrent2WebGISandaimatthecharacteristicsofthesystemofwetlandresourceofDongtingLakethesystemwasde2signedandthedatawereorganized.B/SarchitecturewasadoptedthesystemhasbeendevelopedwithC..NETandMapServerandthefunctionsdesignedwereimplemented.TheinformationsystemofwetlandresourceofDongtingLakehasbeendevelopedsuchfunctionsasthepublicationandinquiryofmapsandsoonarecon2ducted.Thesystemisofbettercompatibilityandthedatabaseiseasiertomaintain.IthasafasterperformancetodevelopthesystemwiththeplatformofC.NETandthemapplug-inofMapServerthanthattobedevel2opedwiththeplatformofPHPtraditionallyandthecodeofthesoftwareisalsofasterthanthatofPHP.Thede2signofattributedataandspatialdatadepositedseparatelyhasraisedtheexternalityofthesoftwareandstabilityofthedatabase.ThedevelopmentofWetlandResourceInformationSystemhasimplementedthesharingofthewetlandresourceinformationthefunctionsofthesystemhasmetthedesignandreachedthedesignedgoals.TheresearchlaysonabaseforthedevelopmentandconstructionofwetlandresourceWebGIS.Keywords:publicationandqueryofmapinformationWebGISMapServerwetlandofDongtingLake