张 雷,黄亚萍,杨 觅
(江苏省基础地理信息中心,江苏 南京 210013)
CorelDraw平台下专题地图实时展现的研究
张 雷,黄亚萍,杨 觅
(江苏省基础地理信息中心,江苏 南京 210013)
由于专题地图集制作周期较长,最初设计时用到的数据一般不是最终数据,因此需要出版前更换为最终数据,这为地图制作带来了繁重的工作量。本文通过分析专题地图中统计数据与图形之间的关系,利用VBA对CorelDraw进行二次开发,建立图形和外部数据库的关联,实现了专题地图的自动更新,有效减少了专题地图制作过程中多次更新数据所带来的繁琐的人工劳动。
CorelDraw;VBA;专题地图
专题地图是按照地图主题的要求,突出而完善地表示与主题相关的一种或几种要素,从而使地图成为内容专题化、用途专门化的地图。
准确实时的数据是编制专题地图的前提条件。专题图均由定量数据根据一定的规则生成,用于清晰地表达现象、观点、趋势等。
统计数据具有实效性。专题地图制作周期较长,在开始设计制作时使用的最新数据往往不是最终数据,因此在专题地图制作完成后需要替换为最新数据,其工作量基本相当于利用新数据重新制作。本文主要解决多次利用较新数据更新专题地图内容的问题。
CorelDraw软件是加拿大Corel公司开发的一款通用的基于矢量的图形制作软件,在平面设计、地图制图、服装设计等行业中应用广泛。CorelDraw支持Visual Basic语言的二次开发功能,用户可以在一定程度上通过VBA操作CorelDraw的对象,通过程序开发实现个性化的功能。
CorelDraw VBA是VB的子集,是一种标准宏语言,是面向对象的高度集成的开发环境,在 Corel-Draw内部运行。
CorelDraw VBA有特殊的数据类型,可以实现计算机制图中常用的基本函数,如画线、画圆、画面、面域填充和文字标注等基本命令。对象分为以下几类:应用程序(Application)类、文档(Document)类、组织结构(Organizing)类、图元(Entity)类。Corel-Draw中对象模型的结构如图1所示。
图1 CorelDraw对象模型
专题地图的原始数据主要由专业部门或统计部门提供,大多为表格数据。基础地图数据一般为图形数据,包括点状要素、线状要素和面状要素。下面就如何基于统计数据更新地图基本要素予以说明。
1.专题地图要素更新方法
CorelDraw本身不具备数据库功能,不能像GIS软件一样通过改变对象属性来修改对象的可视化效果。为了达到GIS软件操作的效果,只能通过VBA二次开发实现图形对象与外部数据的关联。当数据改变时,通过执行命令就可以方便地实现图形的颜色、大小、形状等属性的修改,从而达到快速更新专题地图内容的目的。下面以人口专题为例说明专题地图内容更新方法。
(1)基础地图处理
基础地图是专题图的基础,对专题图集起到至关重要的作用。每幅专题图根据不同数据对地图要素的色彩、大小、形状进行变化而成。如分级统计图表法根据颜色分级,在建立基础地图时通过对象数据管理器为面状对象添加属性,也可以在导入其他格式的基础地图数据时使图形对象与外部数据关联。为基础地图要素添加属性如图2所示。
图2 为图形添加属性
(2)数据库的建立
通过对象数据管理器,可以为点、线、面添加属性,如名称、级别等,使之对应于数据库中相应的字段。
根据表达需要,专题地图属性数据描述精度分为定性数据和定量数据,本文主要针对定量数据,选用Excel数据库模型。
通过分析数据源,确认图形与数据库的关联字段,根据图形表现方式确定数据结构,包括字段数量和字段类型。通过计算、取舍、输入记录来建立与图形对应的数据库。同一数据库可关联多幅地图。数据库建立见表1。
(3)基础地图图形与数据库的关联
专题图的表示方法多种多样,不可能采用同一个数学模型来满足所有专题图需要,因此,需要针对每种方法设计对应的数学模型。本文介绍的方法只可作为建立数学模型的借鉴,不可直接拿来使用,除非与本文专题图实例具有相同的需求。
表1 数据库建立
表1数据库中图形建立了与色号的对应关系。包含色号字段的颜色表是实际需要的颜色值,如图3所示。通过表1、图3即可实现图形与填充颜色的关联,通过运行VBA程序,将自动更换图形的填充颜色。
图3 颜色对应表
(4)图形更新
由上可知,当某些区域的人口数据发生了变化,通过程序将自动更新表1中“色号”字段的值;再通过VBA程序的运行调用修改后的数据,获得正确的颜色值等信息,从而改变图形的颜色、形状、大小等。整体流程如图4所示。
图4 专题地图更新流程
(5)地图中点状要素符号的更新
专题图中表示数量关系一般采用圆形、柱状图、饼状图等大小、形状或颜色。下面以圆形为例介绍一种点状要素符号的更新方法。该类符号首先要确定最大和最小半径,然后按照比率计算不同要素对应的大小。通过数据库获得对应数据,利用VBA功能绘制大小不同的圆形符号,如图5所示。
图5 点状符号更新
圆形符号更新的VBA程序的主要语句如下:
2.统计图表更新方法
统计图表也是专题地图集编制中应用较多的内容之一。制作统计图表的软件很多,如 Illustrator、ArcGIS、Excel等。相比来说 Excel表现形式最丰富,使用方便;但不足之处是弧线转入 CorelDraw后,锯齿现象比较明显,而且颜色模式为RGB色彩模式,需要进一步加工处理,如图6所示。
图6 Excel生成图表
为了解决这个问题,笔者在CorelDraw中使用VBA程序制作。下面以立体饼图为例介绍VBA程序开发过程。
(1)数据规范化
为了VBA对数据的正确调用,必须对数据进行规范化处理,主要解决处理数据类型和数据对应位置(哪一列),如图7所示。
图7 数据整理
(2)图表生成
根据规范化数据,利用VBA程序代码即可实现饼状图的生成,主要源代码如下:
功能1:通过设置半径,自动绘制圆形,并转换成圆形曲线:
功能2:按照各行数据所占比例,计算对应圆弧上的弧段长度,并根据长度依次切断圆形曲线,得到一组与数据对应的弧段组:
功能3:遍历弧段组,将弧段首结点连接圆心,闭合弧段:
代码中pieShape为最终生成的饼状图。
图表生成功能运行界面如图8所示。
图8 图表生成功能运行界面
在专题地图集编制工作中,合作单位或相关部门一般已有基础性图形数据,主要包括GIS数据和图形数据。CorelDraw能够兼容 DXF、EPS、CMX、AI、JPG、TIFF等多种数据格式,为数据转换提供了可行性。
常见的GIS数据有MapGIS和ArcGIS数据等,其他GIS数据都可以转换为ArcGIS数据。如果要在CorelDraw中使用GIS数据,可采用两种方式转换:一是通过开发程序直接读取GIS数据,然后按CorelDraw能够读取的格式导出,CorelDraw即可以直接导入;二是把GIS数据转换为自定义文件格式,由CorelDraw的VBA程序读入自定义格式。
CorelDraw软件是地图制图领域使用较广的软件,其较强的图形处理功能和完美的特效是其他软件难以比拟的,但是其在GIS功能上的先天不足也给地图制图带来了较多的障碍,通过VBA二次开发在一定程度上辅助解决了部分快速制图的问题。本文所述方法在《江苏省地图集》专题地图的编制中发挥了很大作用,避免了数据更新的重复劳动,原来需要几个月才能完成的工作,现在只需两三天,且大大减少了人为错误,不仅提高了生产效率,而且为工作的开展赢得了宝贵的时间。
[1] 黄仁涛,庞小平,马晨燕.专题地图编制[M].武汉:武汉大学出版社,2003:48-49.
[2] 麦照秋,韩雪华.GIS数据用于CorelDraw地图制图方法的研究[J].测绘通报,2008(2):62-64.
[3] 曾克明.CorelDraw软件的二次开发在地图制图中的应用与实例[J].测绘通报,2010(8):60-61,73.
[4] 高小明,汤青慧,温俊丽.CorelDraw中基于VBA的二次开发[J].测绘与空间地理信息,2006,29(6):54-56.
[5] 颜振宇.CorelDraw X5中基于VBA实现线渐变的技术研究[J].测绘与空间地理信息,2012,35(11):202-204.
[6] 张荣茜,熊亮.CorelDraw12环境下VBA二次开发实现图形变换[J].电脑编程技巧与维护,2008(6):65-68.
[7] 钟炜.利用CorelDraw VBA开发宏程序绘制地图[J].江西测绘,2007,69(3):4-6.
[8] 王瑞璋.基于CorelDraw的二次开发技术在地图制图中的应用[J].测绘与空间地理信息,2013,36(3):173-175.
[9] 杨穗,易捷.应用VB或VBA对CorelDraw进行二次开发[J].电脑学习,2004,2(1):31-33.
[10] 张青梅,黄玉英,宋华明.基于CorelDraw的地图编绘技术研究[J].科技资讯,2012(20):46-48.
Real-time Presentation Research of Thematic Maps Based on CorelDraw
ZHANG Lei,HUANG Yaping,YANG Mi
P285
B
0494-0911(2014)12-0118-04
张雷,黄亚萍,杨觅.CorelDraw平台下专题地图实时展现的研究[J].测绘通报,2014(12):118-121.
10.13474/j.cnki.11-2246. 2014.0414
2014-04-28;
2014-06-30
江苏省测绘科研资助项目(JSCHKY201320)
张 雷(1973—),男,陕西富平人,高级工程师,主要从事地图编制工作。