
CAD与GIS对规划领域来讲,大家应该都不觉得陌生,一个善于作图,一个善于分析,两者各有优劣。但很多时候我们会希望CAD与GIS之间能够搭建一座桥梁,让我们能充分利用两者的优点而摒弃他们的缺点。本文基于这个问题,借助FME数据转换工具,架起CAD与GIS互通的桥梁,实现不同数据之间的互相操作。首先需要介绍一下CAD与GIS的空间数据组织模型的差异。空间数据组织模型主要包括以下几个方面:空间数据模型,数据组织方式和属性数据管理。
空间数据模型是对现实世界进行抽象表达转化为计算机能够识别的数据结构,其核心是如何组织和描述空间数据。空间数据模型又包括概念模型、逻辑模型和物理模型。目前在GIS中,主要包括矢量空间数据模型和栅格空间数据模型。GIS矢量空间数据模型是一种面向对象的数据模型,它把现实世界中的空间实体分别抽象为平面上的点、线和面实体对象。GIS栅格空间数据模型则是用一个规则的格网(三角形、正方形和六边形)来描述与每一个格网单元位置相对应的空间现象特征的数据模型。
图1 GIS矢量空间数据模型(左)
和栅格空间数据模型(右)
相比与GIS,CAD也是采用面向对象的思想,并以点、线、面和块(块是一组由点、线、面构成的集合体)为基本图元要素,来描绘地理事物的几何特征、位置、大小、形状等属性。在存储方面,CAD的图形元素是按照特定的数据格式与数据结构进行特殊的压缩处理,最后将其数据记录在DWG文件中。因为DWG文件可读性较差,所以经常利用DXF文件作为中间交换格式。因此用户通常是从DXF文件来读取数据信息。
图2 CAD的空间数据模型
总而言之,CAD与GIS的最小图元都为点、线、面。虽然它们的名称相同,但所涵盖的实体对象模型却大不相同。本文将从点、线、面三个层面分别在GIS与CAD数据体系中进行解释说明。
线对象模型:在CAD与GIS中线对象都是通过点模型演变而来(线都是由多个点组成),但是CAD与GIS所支持的线实体对象却有较大差别,CAD与GIS的线实体对象模型表述如下图。
图3 CAD线对象模型
图4 GIS线对象模型
通过对比发现CAD的线对象模型支持的曲线对象明显多于GIS线对象模型。为了更加直观的解释CAD与GIS在线对象模型中的差异,特别选择CAD线对象模型中的直线、构造线、多段线、圆弧、样条曲线和圆弧对象进行数据转换分析。
图5 CAD线对象(左)相对应的GIS线对象(右)
在CAD中直线的定义:每条直线都有对应的起点和端点。构造线的定义:没有起点和端点的线。多段线的定义:由多条线段(直线、弧线或者其他不同形状的线)组成的一个整体线段。从图5中可以看出,除了构造线,其他线对象模型GIS都能够很好的显示。CAD中的直线和多段线在GIS中也体现出了明显的差异,通过属性表可以看出直线被拆分为三条线段(都在交点处被打断),而多段线则作为一个整体的线段显示。由此可见,在GIS中除不能支持构造线、射线等即不能确定起点和端点的线以外,其他CAD的线对象模型都能够很好的展示和表达。
面对象模型:面实体是闭合多边形组成的一个区域,主要用于表示同质要素的形状和位置。在CAD中面对象主要由线实体对象组成的封闭区域,它既可以由直线段组成直线面,也可以是由多段线、弧段、样条曲线、多边形等不同类型中的任何一种或者多种共同组合的曲线面。由于CAD中没有对应的拓扑关系,所以很容易造成组成面对象的线实体未封闭。同CAD相比GIS中的面对象有严格的拓扑结构,其面对象也主要由线对象组成,线对象既可以是多段线、矩形、贝塞尔曲线,也可以是圆弧、椭圆弧等弧线。
图6 CAD面对象模型
图7 GIS面对象模型
通过对比图6与图7可知,CAD面对象多了块对象和色块填充两项。CAD中的块由若干个实体对象组合而成,如点、直线段、圆弧、样条曲线等。它可以作为一个整体在CAD中任意插入、旋转和缩放。正是由于这样的原因才导致在将CAD数据向GIS数据转换时,是否需要将块打散成多个实体对象,还是将块作为一个整体。色块填充也是CAD特有的面对象,首先通过线实体将需要表达的对象轮廓进行描述,然后通过填充对应的轮廓将线实体对象转换为面对象。但是在填充前,要求所有的线对象实体必须是闭合的。
总而言之,CAD与GIS所支持的面对象模型各有不同,但CAD支持的样式要比GIS稍微广泛一些。
数据组织实际上是对空间实体数据的组织与管理。GIS主要采用分类的方式来对数据进行组织管理,即按照点实体对象、线实体对象、面实体对象对地物进行分类表达,并且在同一图层中只能存在相同几何属性的对象模型,在同一几何对象模型之下不同的地物类可以使用不同的颜色、粗细或符号以进行区分显示。CAD主要采用分层的方式来对数据进行组织管理,即以点实体对象、线实体对象、面实体对象和块对象为基本绘图单元对地物进行分层表达,在同一图层中可以同时存在点、线、面和块对象。CAD的分层方式比较多样化,如利用线条的颜色、样式进行分层,同时也可以根据数据的属性信息进行分层,分层的方式不局限于要素的几何类型。同时CAD不像GIS要求不同几何类型的数据不能存在同一层要素内。CAD数据中的每一层包括一个地理实体的所有数据,如一个体育场馆,它既有点实体对象又有线实体对象和面实体对象,它们被统一存储在同一个数据层中用于描述该体育场馆。虽然这样的数据组织方式非常符合人类的认知和制图的要求,但是却不利于数据的管理和分析。
在GIS中,是利用第三方的关系数据库来对要素的属性数据进行统一管理。GIS中的每一个要素类都会对应一个DBF文件专门用于要素类的属性信息存储,它们通过对图形要素进行唯一的编码,来实现属性与图形要素的关联。其中的属性数据在数据库中以表格的形式存储,一个属性表对应一个地理要素类,每一行表示一个要素,每一列表示的是地理要素的一个特征。换而言之,一个地理要素类的属性特征对应一个表格,同一性质的地理要素具有相同的属性,这种方式便于数据的管理。
在CAD中的属性数据主要采用直接属性、扩展属性和外挂数据库这三种方式进行管理,然而这三种方式各有利弊。采用直接属性的组织方式可以记录每个图层的名称、线型、颜色、类型和实体标识码等属性信息。采用扩展属性的组织方式是利用XData来存储实体的属性信息,XData由结果缓冲区链表组成,它与CAD图形一起保存,可以存储实数、字符串、控制串、整数等。然而其限制是XData中单个要素的存储空间不能超过16KB。采用外挂数据库的组织方式,利用图形对象与外部数据库如Access、Oracle、SQLServer进行相关联,该模式适合存储大数据量的属性数据。但是在数据更新时,外挂数据库存储的信息不能保证属性数据与图形数据的一致性。由于CAD的属性数据与图形数据并非直接关联,所以在与GIS数据进行转换时,往往存在属性信息丢失的问题。
以上就是关于GIS与CAD在空间数据模型,数据组织方式和属性数据管理方面的对比研究。通过对比分析发现GIS与CAD在矢量数据的处理方面都是采用的面向对象的思想来对现实世界进行模拟表达,它们都是通过点对象、线对象和面对象对现实世界的实体对象进行表达,但是它们在表达的形式上会存在一定差异。正是因为这些差异才导致GIS与CAD数据之间不能直接转换。
[1] 薛章斌. 顾及图元与实体关系的GIS与CAD数据双向转换方法研究[D]. 南京师范大学, 2014.
[2] 石木耀. AutoCAD数据与ArcGIS数据转换研究[D]. 中国地质大学(北京).
[3] 陈年松. 基于FME的CAD与GIS数据共享研究[D]. 南京师范大学.
[4] 周浩, 吴正鹏. 基于FME实现CAD向GIS数据转换的关键技术研究[J]. 测绘与空间地理信息, 2019, 42(05):129-130+136.
[5] 曾传俊, 李莲芳, 褚睿涛. 基于FME的DWG图形转换[J]. 测绘通报, 2019(S2):282-284.

【信息化天地】基于手机信令数据的通勤人口流动特征探析—以成都市为例
(长按二维码识别就可关注我哦^-^)
原文始发于微信公众号(成都市规划设计研究院):【信息化天地】基于FME的CAD与GIS的转换研究(上篇)