基于MapServer的WebGIS地图符号化研究与实现.pdf

上传人:b****1 文档编号:3175732 上传时间:2022-11-19 格式:PDF 页数:6 大小:540.86KB
下载 相关 举报
基于MapServer的WebGIS地图符号化研究与实现.pdf_第1页
第1页 / 共6页
基于MapServer的WebGIS地图符号化研究与实现.pdf_第2页
第2页 / 共6页
基于MapServer的WebGIS地图符号化研究与实现.pdf_第3页
第3页 / 共6页
基于MapServer的WebGIS地图符号化研究与实现.pdf_第4页
第4页 / 共6页
基于MapServer的WebGIS地图符号化研究与实现.pdf_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

基于MapServer的WebGIS地图符号化研究与实现.pdf

《基于MapServer的WebGIS地图符号化研究与实现.pdf》由会员分享,可在线阅读,更多相关《基于MapServer的WebGIS地图符号化研究与实现.pdf(6页珍藏版)》请在冰豆网上搜索。

基于MapServer的WebGIS地图符号化研究与实现.pdf

第41卷第1期上海师范大学学报(自然科学版)Vol41,No12012年2月JournalofShanghaiNormalUniversity(NaturalSciences)Feb,2012基于MapServer的WebGIS地图符号化研究与实现顾颖虹,芮建勋,陈能,刘人杰,田冬迪(上海师范大学旅游学院,上海200234)摘要:

地图符号化是当前数字地图研究的重要内容之一在研究MapServer引用地图符号库实现WebGIS原理的基础上,着重探讨了MapServer的地图符号渲染方式,同时以基础要素为例实现地图的分类符号化,建立基础要素符号库,最后构建具体实例调用,验证其可行性与有效性关键词:

地图符号;MapServer;WebGIS;开源中图分类号:

P208文献标识码:

A文章编号:

1000-5137(2012)01-0056-06收稿日期:

2011-05-06基金项目:

上海市教委重点学科项目(J50402);上海师范大学理工科项目(SK200730);城市地理信息校重点学科(DZL801);世博专项(SK201054)作者简介:

顾颖虹(1987),女,上海师范大学旅游学院硕士研究生;芮建勋(1971),男,上海师范大学旅游学院副教授;陈能(1961),女,上海师范大学旅游学院教授0引言作为形象化的语言,符号能够直观地展示人们所要表达的内容地图符号即地图的语言,是表达地理事物或现象的一种重要可视化工具12,是读图者感受地理事物或现象的主要方式,也是计算机制图的基础和空间数据可视化的核心内容由于近年来数字地图、地理信息系统及互联网的快速发展,立足于网络的地理信息表达已经成为热点3符合行业标准规范化的地图符号库是实现地理信息表达的重要组成部分综合考察目前国内外GIS软件,均采用不同的描述模型与数据结构,难以实现地图符号库不同工程项目间的共享与服务,但是针对特定工程项目,制作完整规范的地图符号库仍具有重要研究意义,它将有效提高地图符号库的共享性、可移植性,大大减少项目构建的重复性劳动MapServer是美国明尼苏达大学(UniversityofMinnesota,UMN)在20世纪90年代利用C语言开发的在线动态地图发布引擎4其最大的特点是开放性,源代码全部公开,用户在免费使用的同时,能自行修改、复制及再发布并且MapServer可以在多种系统环境下运行,支持包括栅格、矢量和空间数据库等不同格式的地图来源及不同的流行脚本语言如Perl,Python,PHP等另外,MapServer支持的FastCGI能将CGI保持在内存中,避免了反复加载,因而获得较高的性能,北卡大学夏洛特分校的TobinBradley通过对比试验发现MapServer的运行效率比ESRI公司的ArcIMS快将近30%5在以开放性和互操作为今后地理信息系统重要发展方向的背景下,开源WebGIS软件MapServer必将会得到越来越多人的关注因此有必要基于MapServer所提供的点、线、面图形对象去构建地图中所需的各种地图符号,最终组建地图符号库,以供基于MapServer的特定WebGIS项目实现不同地图时进行调用本文作者结合网络地图符号特点,在研究MapServer引用地图符号库实现WebGIS原理的基础上,着重探讨了MapServer对于各类地图符号的渲染方式,并以基础要素为例实现地图分类符号化,建立基础要素符号库,同时搭建简单实例调用该符号库,验证其可行性第1期顾颖虹,芮建勋,陈能,等:

基于MapServer的WebGIS地图符号化研究与实现1地图符号分类及特征分析根据制图学理论,地图符号按各自是否依比例表示二维地图平面上的地物,可分为点状符号、线状符号、面状符号点状符号指不能依地图比例尺表示小面积地物和点状地物的符号,具有定位和可选的方向性信息,通过形状和颜色表示地图要素的性质、等级、大小和数量等特征;线状符号是指长度在地图上按比例表示,而宽度在图上不依比例表示的符号,表达呈线状或带状延伸分布的地图要素,及该地图要素的分布位置、延伸形态和长度;面状符号则是指在二维地图上各方向都能依比例尺表示的符号,符号的形状与地图要素的平面图形相似,其轮廓线(如实线、虚线或点线)表示它的分布范围,轮廓线内加绘的颜色说明它的性质和数量672MapServer实现网络地图符号化的原理MapServer可渲染地理数据,即显示地理图像4在以MapServer构建的WebGIS中,MapServer能够以CGI与MapScript两种模式运行其中,在CGI模式下,MapServer渲染地理数据需以下4类信息:

Map-file,HTML初始化表单,HTML模板文件及空间数据在网络环境中,MapServer实现地图符号化主要有以下的运作过程,当用户通过浏览器访问Web服务器发出HTTP请求后,Web服务器则调用MapServer递交HTML初始化表单,表单中指向的CGI应用程序随即读取Mapfile,该文件通过内部Symbol关键字对符号库中已定义的地图符号进行引用,并根据信息配置渲染出定义在Mapfile中的地图,同时读取HTML模板文件,搜寻可替换字符串,将生成的地图嵌入到HTML页面,经Web服务器返回至客户端浏览器4而在MapScript环境下,MapServer不同于CGI模式下只是简单的网络应用接口不能利用外部库功能,MapScript作为程序接口支持从不同编程环境调用MapServer的基本功能,但是实现地图符号化与CGI模式下相一致,同样是读取Mapfile文件Mapfile文件作为整个MapServer系统显示地图的核心,它定义了地图对象、空间点位之间对应关系,在实现符号化的过程中,通过外部矢量绘图软件如CorelDraw,AdobeIllustrator等设计符号或修改True-Type字体符号以及直接调用栅格图片实现符号的准备,转化成点、线、面3类符号分别入库,Mapfile依据地理空间要素与符号之间的对应关系,引入相应的符号类(点、线、面)绘制函数,实现符号化2,8如图1所示,Mapfile控制地图符号化的流程图1Mapfile控制地图符号化的流程3基于MapServer的分类符号化符号化即根据符号信息和实体定位信息,通过缩放、旋转、平移将符号从有限的符号空间变换到地图空间9MapServer绘制点、线、面3类符号与空间数据的类型并不一致,而是由Mapfile文件中Type关键字给定,如point,line,polygon,当空间数据类型为面状时,在Mapfile中Type定义为line,则绘制出75上海师范大学学报(自然科学版)2012年多边形的边界线下面详细介绍MapServer对点、线、面3类符号的实现方式31点状符号的实现点状符号在地图上是一个定位点,一般获取的是坐标点位信息及色彩信息在MapServer中可通过Unicode调用,实时矢量绘图以及调用已有图片3种方式实现符号化点状地物

(1)Unicode方式Unicode是一种在计算机上使用的字符编码,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求MapServer的Unicode调用全部来源于对于字体文件的调用,即将绘图类型设置为TrueType,使用字体文件中自带的Unicode进行绘图倘若需要实现Unicode的移植,只要修改字体文件,将目标符号添加到指定的字体文件中即可以飞机场的符号为例,采用此种方式实现符号化该符号通过造字软件FontCreatorProgram在自定义字体文件symbol_map中设计,并获取其Unicode十六进制编码,并转换成十进制具体符号定义代码如下所示,#后为注释:

SYMBOL#开始符号定义NAMEairport#当前的符号名称定义为airportTYPETRUETYPE#指定符号类型为调用字体文件FONTsymbol#指定字体文件为自定义的symbolANTIALIAStrue#平滑显示单个符号CHARACTER#1;#指定编码的十进制形式,在改字体文件中为“1”END#结束符号定义Unicode方式实现点状符号过程如图2所示:

图2unicode实现点状符号过程

(2)实时矢量绘图方式MapServer制作矢量地图符号时,支持两种类型,即Vector和EllipseVector方式是根据符号文件中指定的坐标点来进行绘图,Ellipse方式则是根据符号文件中给定的参数x和y值画出一个实心的椭圆,若x与y的值相等,则会画出一个实心的圆以市政府的符号为例,采用Vec-tor实现符号化具体符号定义代码下所示,#后为注释:

SYMBOL#开始符号定义NAMEcitycenter#当前的符号名称定义为citycenterTYPEVECTOR#指定绘图类型为vectorPOINTS00375#起笔在(0,0375)点0350375#下一笔在(035,0375)点,和上一点之间用直线相连050#下一笔在(05,0)点,和上一点之间用直线相连0650375#下一笔在(065,0375)点,和上一点之间用直线相连10375075062508751050750125185第1期顾颖虹,芮建勋,陈能,等:

基于MapServer的WebGIS地图符号化研究与实现025062500375#回到起笔处(0,0375)点ENDFILLEDTRUE#绘制的符号填充指定颜色END#结束符号定义(3)调用已有图片MapServer亦支持使用栅格图进行地图符号的渲染,一般支持GIF和PNG这两种格式的栅格图使用已有图片作为地图的符号,需在符号定义的时候将Type设置成pixmap显然当用栅格图作为地图符号的时候,在地图显示时候不能更改图片的颜色但是要绘制极其复杂的地图符号时,使用栅格图进行渲染是一种理想的替代方法以其他区县政府符号为例,采用调用已有图片实现符号化具体符号定义代码下所示,#后为注释:

SYMBOL#开始符号定义NAMEotherdistrict#当前的符号名称定义为otherdistrictTYPEpixmap#指定绘图类型为pixmapIMAGE/otherdistrictgif#调用名为otherdistrictgif的图片END#结束符号定义以上3种方式定义的点状符号引用后显示效果图如图3所示图3(a)飞机场符号unicode方式图3(b)市政府符号实时矢量绘图方式图3(c)其他区县政府符号调用已有图片方式32线状符号的实现MapServer并不支持直接定义线状符号,而是在地图图层调用的时候,根据图层的类型决定是否把符号绘制成线状,即在Mapfile中需将图层的Type属性定义成line,通过点状符号渲染线状符号,本质上绘制的仍是点状符号复杂的线符号可看做是若干个基本的线符号(如直线、虚线、点线等)的叠加或者是点符号沿着线的前进方向的周期性重复根据以上两个特征,因此绘制线状符号存在两种不同的绘制方法:

单一特征的线符号叠加组合;将线符号分解成基本点符号循环配置实现6,10MapServer在实现线状符号绘制时,也体现了上述思想如图6所示,以城市高架符号为例,分3步完成该符号的绘制,即Mapfile文件中在Class类调用3次点状符号,首先调用以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1