辽宁大连 116023
摘要:计算机技术引入地图学以来,对其建设和发展起到了巨大的促进作用,各种制图软件也应运而生。CorelDraw软件使用方便,能精确编辑任何线条、图形和文字,在平面设计中越来越受地图制图者的关注,十分适合编制小幅面、内容相对简单、数学精度不高的专题地图,尤其适用于城市专题图集的编制,能有效展示地图的艺术性效果。
关键词:CorelDRAW;VBA;制图符号化
1CorelDraw与VBA概述
CorelDraw是近年来被广泛应用在地图制图领域的矢量图处理软件,相对于传统的地图制图软件ArcGis、 MapGis等,作为专业的图形图像软件,在地图的美观性上,coreldraw有其无法比拟的优越性,在菜单文件选项下,它有专门的“为彩色输出做准备”一项。应用ArcGis做初期的数据采集与库管理工作,然后应用MapGis做初步的地图成图、注记标注等,最后用CorelDraw进行图面美化与细节修饰等。
VBA(Visual Basic for Applications)是Microsoft Visual Basic(VB)面向对象程序开发环境的一个子集,是新一代标准宏语言。VBA使用Visual Basic Editor交互开发环境和VB语言操作应用程序的对象来增强应用程序的功能。VBA为用户提供了一套客户化CorelDraw应用程序的图形用户界面,用户可以对应用程序中的对象进行有效地操作和处理。VBA使用VB语言,由于它多用于集成到别的应用程序并对应用程序的函数进行客户化,它才加上了“for Applications”,称作VBA。
2关于CorelDRAW VBA的地图制图符号化设计
2.1点要素符号化
CorelDRAW中符号替换主要包括两种方法:一是手动替换,即将新符号复制拖动到原始符号位置,然后删除原始符号,但某些矢量点要素尺寸极小,肉眼无法识别,而且这种方法人工干预强、效率低,不适宜大批量的符号处理;二是建立点状符号库,但是新绘制的符号入库前,必须合并成单一的图形对象,而且所有组成部分都必须封闭。
期刊文章分类查询,尽在期刊图书馆
实现流程分为以下几个步骤:
1)在CorelDRAW文档中,首先创建“图式符号”图层,然后在该图层中设计并绘制新符号,并将其Name修改为对应符号化图层的Name;
2)利用Shape的PositionX、PositionY、SizeWidth和SizeHeight属性,构建X,Y函数,依次获取待符号化图层中每个要素各定位点的坐标;
Function X(thshp As Shape) As Double
If Option2.Value=True Or Option5.Value=True Or Option8.Value=True Then
X=thshp.PositionX+thshp.SizeWidth/2
End If
If Option1.Value=True Or Option4.Value=True Or Option7.Value=True Then
X=thshp.PositionX-thshp.SizeWidth/2
End If
If Option3.Value=True Or Option6.Value=True Or Option9.Value=True Then
X=thshp.PositionX+thshp.SizeWidth*1.5
End If
End Function
FunctionY(thshp As CorelDRAW.shape) As Double
If Option4.Value=True Or Option5.Value=True Or Option6.Value=True Then
Y=thshp.PositionY-thshp.SizeHeight/2
End If
If Option7.Value=True Or Option8.Value=True Or Option9.Value=True Then
Y=thshp.PositionY-thshp.SizeHeight*1.5
End If
If Option1.Value=True Or Option2.Value=True Or Option3.Value=True Then
Y=thshp.PositionY+thshp.SizeHeight/2
End If
End Function
3)同样的原理,构建x,y函数,获取新符号的定位点坐标;
4)根据Frame中点选的原符号和新符号的定位点,利用Shape的Duplicate方法,依次将新符号复制到待符号化图层中每个要素的定位点上,然后利用ShapeRange的Delete方法将待符号化图层中原符号全部删除,最后利用ShapeRange的cut方法和Layer的Paste方法,将“图式符号”图层中新复制的符号剪切并粘贴到待符号化的图层中。
2.2线状要素的符号化
线状符号在形态上呈条带状延伸,沿着定位基线由分层的图元叠合而成。线状符号主要表示物体的类别、位置特征等,它的几何中心与地物实际位置是一致的。以道路为例,在CorelDRAW中道路的表示主要由两层组成:上面一层为浅颜色,线略细;底下一层为深颜色线较粗。程序实现方法如下:
Set lr1=ActiveDocument.ActivePage.CreateLayer("一级道路白")'创建图层
Set slayer=ActivePage.Layers("一级道路")
Index=slayer.Shapes.Count
For i=Index To 1 Step-1
Set sshape=slayer.Shapes.Item(Index-0)
sshape.Outline.Width=1.8*iscale'道路设置宽度
sshape.Outline.Color.CMYKAssign0,0,0,100'道路颜色
sshape.Copy
Set lr1=ActivePage.Layers("一级道路白")
lr1.Paste'复制到"一级道路白"
Clipboard.Clear
sshape.Layer=slayer
Index=slayer.Shapes.Count
Next i
2.3面要素符号化
面要素是指地图上填充于面状分布现象范围内,用于说明面状分布现象质量特征或数量特征的要素符号。以面状水系为例,主要是填充颜色和设置边线。具体实现代码如下:
Set mlayer=ActivePage.Layers("水系")
iscale=TextBox1.Text
Index=mlayer.Shapes.Count
For i=Index To 1 Step-1
Set mshape=mlayer.Shapes.Item(Index-0)
mshape.Outline.Width=0.1*iscale'设置边线宽度'设置边线和面的颜色
'mshape.Color.CMYKAssign70,0,0,0
'mshape.Fill.HatchFill.Color.CMYKAssign70,0,0,0
mshape.Outline.Color.CMYKAssign50,0,0,0
mshape.Fill.UniformColor.CMYKAssign25,0,0,0
mshape.Layer=mlayer
Index=mlayer.Shapes.Count
Next i
3结语
通过实践证明按照本文的地图制图符号化程序进行地图制图编制,有很多优点。主要体现在:1)符号化程序能快速生成所需的基础地理底图,快速的还原基本的地理底图;2)减少人工操作的参数不一致问题;3)制图区域跟数据源有关,数据冗余低,从而极大的提高了工作效率。
参考文献:
[1]ArcGIS到CorelDRAW平台的地图符号自动配置方法[J].严锐,任福,杨杨,陶桐桐.测绘地理信息.2017(03)
[2]CorelDRAW软件在计算机辅助产品设计与生产中的应用[J].袁玲.大众文艺.2014(05)
作者简介:
王红伟( 1981.04.20)性别: 女, 毕业院校: 解放军信息工程大学测绘学院,学历: 大学本科 工作任职经历2004年,专业方向: 制图
论文作者:王红伟,王睿,于兴超
论文发表刊物:《防护工程》2018年第4期
论文发表时间:2018/6/20
标签:符号化论文; 符号论文; 图层论文; 地图论文; 要素论文; 道路论文; 应用程序论文; 《防护工程》2018年第4期论文;