CorelDRAW地图制图数据质量自动化检查方法研究

2016-07-08 08:04戴相喜施一军陈磊
城市勘测 2016年3期
关键词:二次开发模板

戴相喜,施一军,陈磊

(南京市测绘勘察研究院有限公司,江苏 南京 210019)



CorelDRAW地图制图数据质量自动化检查方法研究

戴相喜*,施一军,陈磊

(南京市测绘勘察研究院有限公司,江苏 南京210019)

摘要:面向CorelDRAW地图制图数据检查需求,在规范化地图制图基础上,设计地图数据检查模板,用户在该模板中设置各图层数据制图表达参数,由程序自动读取该参数对地图制图数据批量进行检查,从而达到对制图数据标准化检查的目的,可以很大程度上减少制图数据检查工作量,提高检查效率和准确性。

关键词:CorelDRAW;质检;模板;二次开发

1引言

目前国内地图制图领域较常见的软件有CorelDRAW、ArcGIS、MapInfo等。ArcGIS和MapInfo是传统的GIS软件,擅长空间数据的查询与分析,制图功能是其在后续工作中不断增加完善的,不是主推功能。CorelDRAW是专为制图设计,以其丰富的制图功能、精细的制图效果占领了大部分的制图市场,是目前国内使用最广泛的专业矢量图形设计软件[1,2]。

因地图制图要素种类、数量众多,制图人员在制作制图数据过程中难免由于疏忽、误操作等原因将要素分错层、设置错颜色等。传统的地图制图数据质量检查通常由人工进行,由检查人员根据地图设计方案中预定的分层、颜色、线宽等,对制图成果数据进行仔细检查。这些错误若全由人工来检查,一方面由于很多错误不能十分直观地发现,不能完全确定通过检查能否将此类错误悉数查出;另一方面检查工作量很大,会花费不小的人力成本,同时也会影响项目周期。

鉴于上述原因,本文设计一套软件对地图制图数据进行标准化检查,查看其是否按照制图方案的分层、色彩等进行操作,对这部分工作自动化检查,解放检查人员的劳动力,让他们更加专注于地图自身图面表达、效果等方面,力求做出更优秀的地图。

经资料查阅,目前尚没有见到基于CorelDRAW的地图制图数据质检程序方面科技论文或文献发表。

2设计思路

本文设计的思路是首先由地图设计人员根据地图内容对地图的分层、颜色、线宽、字体等进行设计,设计时注意一般不同几何类型放置在不同图层,如有填充的面和普通的线不放在一个图层,因为在CorelDRAW中这些类型不是严格意义上的几何类型,只是通过填充、描边等来控制其表现形式,很难通过几何类型区分,通过图层细分可以减少程序判断的难度,表1为推荐的可以在同一图层出现的常见类型。

在此基础上设计数据检查的模板,模板是基于微软Access数据库,其中定义了每个图层的制图表达参数,如填充颜色、描边颜色、色块颜色、字体大小等。

基于检查模板,设计了几个主要的检查功能如下:

(1)层名规范检查

该检查项检查数据中图层的层名是否都是模板中层名字段规定的名称。由于模板中所有参数设置均与层名相关联,若被检查数据中层名不正确,即无法使用正确的参数对该层进行检查,因此层名检查应该是首先要被检查的内容。

(2)填充颜色检查

该检查项检查几何图形和文字的填充颜色是否符合模板中填充颜色字段要求。在CorelDRAW中,文字不同于其他常见软件,如AutoCAD、ArcGIS等,这里的文字如同几何图形一样处理,有描边和填充,因此将文字和几何图形放在一起做填充颜色检查。如果模板中填充颜色字段设置了填充颜色值,则需检查该层几何图形和文字填充颜色是否符合要求,如果没有设置填充颜色值,则该图层内要素不允许有填充存在。

(3)描边颜色检查

该检查项检查几何图形和文字的描边颜色是否符合模板中描边颜色字段要求。如果模板中描边颜色字段设置了值,则需检查该层几何图形和文字的描边是否符合要求,如果没有设置值,则该层内几何图形和文字不允许有描边存在。

(4)描边粗细检查

该检查项检查几何图形和文字的描边粗细和后台描边是否符合模板设置的描边粗细及后台描边要求。

(5)色块检查

色块是指为突出显示某些文字而专门在其下放置的图形。如果模板中色块颜色设置了值,则一方面检查该层内的文字注记下是否有色块存在,另一方面检查该色块的颜色、描边是否与模板中色块颜色、色块描边颜色、色块描边粗细中所设置值符合。

(6)注记字体检查

该检查项检查文字注记所使用的字体是否符合模板中字体字段要求。如果模板中该层没有设置字体,则该层中不应有文字注记出现,如果设置了字体,则检查注记的字体是否与设置要求一致。

(7)注记大小检查

该检查项检查文字注记的字体大小是否符合模板中字大字段要求。

(8)线型检查

该检查项检查线类型几何图形的线型是否符合模板中线型字段要求。如果模板中该图层未设置线型值,则该图层中图形不应有线型,若设置了值,则应符合所设值要求。

(9)符号图层一致性检查

该检查项检查符号是否放错图层。在模板的符号列表层中设置该图层允许放置的符号名称,图层中只允许放置列表中列出的符号。

3关键技术及程序实现

3.1关键技术

CorelDRAW软件二次开发目前可查阅到的资料较少,这里将二次开发过程中关键知识点和注意事项列出。

(1)尺寸换算

检查描边粗细、字高时需要获取对应对象的尺寸数值,CorelDRAW程序在互操作界面上提供了字体的字高、图形的描边粗细等数值供用户设置,这些数值的单位是我们常用的磅、米、毫米等,但是在程序开发时不能直接使用这些值来设置相应的参数,因为CorelDRAW维护了一套内部尺寸标准,各互操作界面上的尺寸大小均需转换为内部尺寸标准方可使用。开发人员可以使用Document.ToUnits(double Value,cdrUnit FromUnit)函数来对界面上数值进行转换。

(2)注记参数获取

注记检查时需获取注记的字体、字高等参数,获取参数时需注意CorelDRAW中多段文字,多段文字每段均可使用不同的字体、字高参数,而如果检查时只检查了第一段的参数,未检查后续段落参数,则可能检查不完全,开发人员可以使用Shape.Text.Story.Paragraphs.All属性来获取所有段落的参数。

(3)空间搜索

CorelDRAW作为矢量制图软件,未能像GIS软件一样提供灵活、强大的空间搜索函数供开发人员调用,但是也提供了一些简单的空间搜索函数,这里将其列出,开发检查程序时如需做空间判断,如搜索注记是否有色块衬底,可使用这些函数。

Page.SelectShapesAtPoint(double x,double y,bool SelectUnfilled,double HotArea=-1);

Page.SelectShapesFromRectangle(double x1,double y1,double x2,double y2,bool Touch);

这两个函数分别提供了点选和框选的功能,开发人员开发时可以合理加以利用。

(4)线型获取

CorelDRAW中可以使用编辑线条样式工具编辑制作线型,一般是使用黑白相间的样式,黑白相间样式可以单组重复或多组重复。开发人员可以通过Shape.Outline.Style.DashLength[i]和Shape.Outline.Style.GapLength[i]两个属性来分别获取第i组黑、白颜色的长度。3.2程序实现

(1)开发语言选择

本程序选用C#语言,采用COM互操作的方式添加对CorelDRAW的引用,从而实现对其访问和控制。

(2)模板设计

基于以上设计思路,设计Access数据库模板属性检查表结构,如图1所示,其中定义了层名、填充颜色、描边颜色、描边粗细、是否后台描边、色块颜色、色块描边颜色、色块描边粗细、字体、是否粗体、符号列表、线型等字段,用来填写各个图层中图形表达的参数。

图1图层参数设置

(3)检查流程

检查模板配置好之后即可进行制图数据的程序自动检查了,检查的流程如图2所示:

(4)程序界面

检查程序界面图3所示,检查功能可批量对多文件执行。

(5)检查结果验证

检查程序主要工作是按图层和几何类型对数据进行遍历,将遍历出来的要素与模板设置参数进行对比,所需进行的逻辑判断较简单,其耗时主要集中在数据遍历阶段。

此处以一幅1∶8 000比例尺的制图数据为例(如图4所示),图中共有注记435个,点对象192个,线对象 5 826个,进行描边粗细、描边颜色、注记字体、注记大小4项检查,分别耗时: 249 min、 322 min、 141 min、 80 min,共耗时 772 min,检查结果见图5,图中所示错误为城市次干道上层中线描边粗细应该为 3.2 mm,而图中该线描边粗细为 2 mm,故报错。

4结语

本文设计并实现了一种基于数据库模板的可定制的地图制图数据检查程序,用户可以在数据库模板中设置各个图层的制图参数,由程序自动读取该参数对图层中要素进行检查,具有很大的灵活性。程序主要实现了对制图数据的层名、填充颜色、描边颜色、描边粗细、字体名称、字体大小等制图表达参数的检查,极大提高数据检查的效率和准确性。本成果成功应用于《中国城市地图集系列之南京城市地图集》中,取得了良好的效果。本文设计的程序不能完全代替人工检查,如图面内容合理性等,这部分还需制图检查人员人工检查,另外本程序对字体检查部分尚有不足,如缺少对文字拉伸、压缩方面的检查,需进一步加以研究完善。

参考文献

[1]王瑞璋. 基于CorelDRAW的二次开发技术在地图制图中的应用[J]. 测绘与空间地理信息,2013,36(3):173~175.

[2]高小明,汤青慧,温俊丽. CorelDRAW中基于VBA的二次开发[J]. 测绘与空间地理信息,2006,29(6):54~56.

[3]张天纯. 使用CorelDRAW图形软件编制专题地图集[J]. 城市勘测,2003(1):37~41.

[4]王昌翰,徐占华. 图形软件在重庆市地图集中的应用[J]. 城市勘测,2008(2): 102~104.

[5]梁建国,徐占华,颜宇. CorelDRAW VBA在地图制图中的应用[J]. 测绘科学,2009,34(10):218~219.

Research on Automatic Check Method for CorelDRAW Mapping Data

Dai Xiangxi,Shi Yijun,Chen Lei

(Nanjing Institute of Surveying,Mapping & Geotechnical Investigation,Co.,Ltd,Nanjing 210019,China)

Key words:CorelDRAW;check;template;secondary development

Abstract:This paper designed a Mapping data check template based on Standardization cartography method oriented to the demand of checking for CorelDraw Mapping data,user can set mapping parameters for each layer in this template,then the check program read parameters for the using of batch checking mapping data automatically,thus can achieve the goal of Checking for Mapping data Standardization,reduce the workload of checking mapping data to a great extent,improve Efficiency and Accuracy of checking.

文章编号:1672-8262(2016)03-59-04

中图分类号:P208.1

文献标识码:B

*收稿日期:2016—03—09

作者简介:戴相喜(1984—),男,硕士,工程师,主要从事地图与GIS方面的研究工作。

基金项目:四川省地理国情监测工程技术研究中心资助项目(GC201502)

猜你喜欢
二次开发模板
铝模板在高层建筑施工中的应用
铝模板在高层建筑施工中的应用
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
巧用思维模板 强化规律应用
浅谈Mastercam后处理器的二次开发
Estimation of irrigation requirements for drip-irrigated maize in a sub-humid climate
西门子Easy Screen对倒棱机床界面二次开发
铝模板在高层建筑施工中的应用
城市综改 可推广的模板较少