APP下载

专题地图GIS数据库与平面设计软件互操作技术

2019-07-05齐志飞陈功龚天宇王柳

城市勘测 2019年3期
关键词:符号化图层制图

齐志飞,陈功,龚天宇,王柳

(南通市测绘院有限公司,江苏 南通 226006)

1 引 言

专题地图编制的工具,采用GIS软件符号化还是采用平面设计软件,是地图生产单位长期以来面临的选择难题。

ArcGIS、SuperMap等GIS软件在空间数据的管理和分析上具有明显优势,使用GIS软件符号化制图的优势是数据分类管理方便、出图快、生产效率高,并且GIS软件符号化制图的独有优势还在于可用于电子地图发布,缺点是艺术设计效果稍差。而CorelDRAW、Adobe Illustrator等平面设计软件具有更优的艺术设计效果[1]。使用平面设计软件进行专题制图的优缺点与GIS软件相反,两类工具存在明显的互补性。

2 已有互操作方式

为了结合平面设计软件与GIS平台软件各自的优势,达到兼顾生产率和制图效果的目的,地图编制人员曾进行一些尝试[2]。

(1)基于数据格式的交换

DXF、EPS、PDF等中间交换格式被各大平面设计软件和GIS平台所支持,故可以实现平面设计软件与GIS之间的互操作[3]。但是通过中间交换格式的互操作逻辑层次太低,这些交换格式有的只能将线划导出、有的无法携带分类和属性信息,更无从谈起基于分层分类的批量符号化。数据每交换一次即损失一次。

(2)MAPublisher设计插件

MAPublisher设计软件是加拿大Avenza公司出品的地图制图软件,其应用形式为基于Adobe Illustrator的扩展插件。该制图软件已在地图编制业内得到应用[4]。该工具的优点包括:直接读取Shapefile等数据格式,无须GIS软件环境支持;实现由属性数据支撑的分类自动化符号配置;数据编辑结果可以回写Shapefile等。

但该工具也存在缺点:一是读取数据格式受限,如可以读取ArcGIS的Shapefile格式但不能读取GDB、MDB等Geodatabase,不支持注记要素类;二是地图文档(如MXD)中的符号化信息无法被带到MAPublisher中,在MAPublisher中的符号化信息无法回写GIS数据库或MXD地图文档;三是用户的二次开发困难;此外制图单位需要向厂商支付购买制图插件的费用。

(3)基于二次开发的转换

二次开发是主流GIS软件平台的必备功能,例如ArcGIS的ArcObjects是基于COM的组件化平台[5]。在平面设计软件中,CorelDRAW支持VBA开发接口[6],Adobe Illustrator也提供了基于C++和COM Automation的二次开发SDK。因此基于开发接口来进行GIS数据库与平面设计软件间的互通是可行的选择。

VBA开发的问题在于难以整合ArcObjects这样的复杂类库,并随着技术发展其适应性明显下降。外部COM Automation开发接口得到了Adobe Illustrator和CorelDRAW的支持,但其应用模式是新建立一个来外部进程实现跨进程调用,每访问一个对象属性和调用对象方法,均需要穿越进程边界,故运行速度较慢[7]。

VSTA(Visual Studio Tools for Application)是CorelDRAW在X5及更高版本中提供的开发接口,应用程序内嵌于CorelDRAW进程,因此运行速度快[8]。基于Visual Studio开发易于整合ArcObjects。此外由于应用被编译为DLL更易于软件封装,且基于.NET和C#语言还具有技术适应性好、开发效率高等特点。

3 目标与思路

3.1 本文研究目标

(1)结合GIS平台和平面设计软件的双方优势,即基于GIS平台来管理制图数据库,基于设计软件来做艺术设计、要素的图面关系处理、图面配置等工作。

(2)在平面设计软件中,对制图对象进行自动分类符号化以保证人工编辑量少,保持平面设计文件数据结构的清晰性以保证人工检索效率高。

(3)平面设计软件中进行的制图对象数据修改(包括符号信息、几何信息、分层分类信息),可以回写到GIS平台的数据库及其地图文档。

(4)双向互通过程的效率高。

3.2 技术路线

基于Visual Studio 2012,整合ArcGIS 10.2及其ArcObjects.NET SDK和CorelDRAW X7及其VSTA开发接口,读取MXD地图文档和数据图层,遍历各图层要素及其分类信息、符号化信息,在CorelDRAW下实现制图对象的自动化重建、分层、符号化和注记配置。对于CorelDRAW下的编辑结果,包括数据的分层分类、属性、几何属性变化情况,可回导为ArcGIS的数据库与MXD地图文档。

4 数据结构组织

4.1 CorelDRAW数据组织

(1)图层组织

CorelDRAW不支持嵌套图层,支持自定义属性,但不支持层设置不同的数据结构。根据这样的特性,不同几何类型、不同大类、不同小类应使用不同的图层。

(2)图层名称组成

图层命名规则为:几何类型+大类+小类。按照几何类型,图层分为注记图层、点类图层、线图层、面图层。按照大类将制图对象分为居民地、道路、水系、植被、地貌等。小类是在大类中将制图对象进行细分,如将道路分为高速公路、国道、省道等。图层在CDR文件中进行排序,按照几何类型、大类、小类依次排序。

(3)制图符号

每个图层只支持一类制图对象,每类对象使用同一种符号样式。建立CDR模板库,用于存储图层及其使用符号。对于CDR模板不能记录的信息,使用程序配置文件进行补充。

4.2 ArcGIS数据组织

(1)分层分类方式

按照几何类型和大类信息划分为不同的要素类。在要素类中,对象小类存储在字段TYPE中,名称属性存储在NAME存储信息中,要素的编码存储在GB字段中。

(2)符号化信息

对于点、线、面三类对象,ArcMap图层(*.lyr文件)记录了其符号化设置信息,并可被MXD地图文档管理;对于文字注记,如果使用要标注则存储在图层(*.lyr文件)中,如果使用注记要素类则存储在GeoDatabase中。

5 软件实现

5.1 坐标系统转换

在GIS数据库中要素以实际位置存储,而平面设计软件中制图对象则使用图纸坐标系和图纸单位。故GIS数据在转为平面设计软件制图对象前,需要首先将坐标系统投影变换并按制图比例缩小到图纸坐标系。

5.2 几何对象与符号样式对照

点、线、面类型的制图对象在ArcObjects与CorelDRAW VSTA中的实现对照关系如表1、表2、表3所示。

点对象在ArcObjects与CorelDRAW VSTA中的实现对照 表1

线对象在ArcObjects与CorelDRAW VSTA中的实现对照 表2

面对象在ArcObjects与CorelDRAW VSTA中的实现对照 表3

注记对象的属性包含字大、字体、加粗、颜色等,读取GIS数据库要素的NAME字段值,在CorelDRAW中利用Shape类及其Text属性可以创建注记文字对象。点的注记生成方法为,采用点所在位置偏移图上可读距离,绘出注记文字;线的注记生成方法,采用在线的起始点位置绘出注记文字;面的注记生成,采用在面的标注位置绘出注记文字。

6 测试评估

构建如表4所示的测试环境。在CorelDRAW X7中,运行基于VSTA的扩展程序来进行MXD转CorelDRAW,共转换制图对象1 600个,生成CorelDRAW图层2个,耗时 12 s,转换速率为133个/s,转换效果如图1所示。再进行CorelDRAW回写Shapefile,共转换制图对象 1 600个,生成Shapefile要素类2个,耗时10秒,转换速率为1 600个/秒,程序运行界面如图2所示。

测试运行环境 表4

图1 MXD转CorelDRAW符号效果

图2 CorelDRAW回写Shapefile程序

基于外部COM Automation的开发方式,转换对象 1 600个,耗时 120 s。可以看出CorelDRAW VSTA程序在运行效率上明显优于COM Automation转换方式。

7 结 语

本文基于CorelDRAW X7及其VSTA开发接口,读取ArcGIS的MXD地图文档生成CorelDRAW制图对象,并完成的自动化重建、分层、符号化和注记配置,并将CorelDRAW下的编辑结果回导至ArcGIS的数据库,保证了程序运行的高效。在地图编制过程中,综合运用GIS平台和平面设计软件,可达到兼顾制图艺术效果和编图生产率的目的。

猜你喜欢

符号化图层制图
小学数学教学中渗透“符号化”思想的实践研究
无声手枪如何消音?
习近平的战疫日志
解密照片合成利器图层混合模式
关于一阶逻辑命题符号化的思考
现代流行服饰文化视阈下的符号化消费
明天我们将生活在怎样的城市?
跟我学添加真实的光照效果
工程制图课程教学改革探析
国外建筑CAD图层标准发展现状与研究