测绘地理信息   2016, Vol. 41 Issue (6): 82-85
0
基于DWG文件的图件坐标转换方法研究与实现[PDF全文]
汪燕麟1, 刘鸿飞1, 王利华1, 周定杰1    
1. 云南省测绘工程院,云南 昆明,650033
摘要: 针对现有的地形图图件坐标转换方法中存在的一致性差、处理复杂、精度不高等问题,提出了基于DWG文件的图件点对点坐标转换方法,建立了大地坐标4参数转换模型与AutoCAD软件中仿射变换模型的联系,研制了地形图坐标转换软件,并利用试验数据进行了验证。结果表明,提出的方法保证了图件上各类实体在转换前后的一致性,利用软件进行图件坐标转换,图件上提取特征点坐标与大地控制点坐标转换后的结果一致,图件转换过程中没有额外的精度损失。
关键词: 坐标转换     DWG文件     实体     图件转换     点对点    
Research on Graphic Conversion Method and Software Development Based on DWG File
WANG Yanlin1, LIU Hongfei1, WANG Lihua1, ZHOU Dingjie1    
1. Surveying and Mapping Engineering Institute of Yunnan Province, Kunming 650033, China
First author: WANG Yanlin, master, senior engineer, specializes in the establishment of geodetic datum. E-mail: ylwang_survey@yeah.net
Abstract: Several shortcomings exist in current method of topographical map coordinate transform such as low consistency, sophisticated processing and poor accuracy. To cope with these issues, a point to point coordinates transform method based on DWG file is proposed. The relationship between 4-parameter transformation model of geodetic coordinates and affine transformation model in AutoCAD software is set up. A topographic map coordinate transformation software is developed and validated by using test data. Results show that the consistency of coordinates before and after transformation given by the software is well reserved. By using the developed software, the coordinates of feature point after map transformation are consistent with the results that are obtained by using geodetic control point transformation software. Extra loss of accuracy can be hardly found during the map transformation.
Key words: coordinate transformation     DWG file     entity     map transformation     point to point    

大地基准规定了测绘作业的起算基准,包括空间定位、定向及尺度标准。我国的大地基准自20世纪60年代以来经历了一系列完善、更新的演化过程[1-3]。传统的国家大地坐标系有1954北京坐标系、1980西安坐标系以及地方独立坐标系等。近年来,我国基于空间大地测量技术建立了2000国家大地坐标系[4-7],目前不同坐标系之间转换方法的研究多且较为成熟,随着2000国家大地坐标系的推广,如何将大地坐标转换方法扩展至图件转换中,实现不同坐标系下地形图成果的高精度转换,成为一个亟待解决的问题[8-10]

我国现有的1:25万、1:5万、1:1万等国家基本比例尺地形图主要为数字线划图,其中在图件存储过程中,多以自动计算机辅助设计(auto computer aided desgin, AutoCAD)软件的DWG或DXF格式存储。DWG是AutoCAD软件的二进制矢量图形编码格式,DXF是文本格式,基于DXF格式进行坐标转换可以较好地脱离AutoCAD软件来独立开发程序,该方法通用性好,且易实现。但由于DWG格式转存DXF过程中,容易出现信息丢失的情况,并且DXF中的图块主要用基点及其边界来描述,基点的选择具有一定的随意性,导致图块坐标转换处理较为复杂[10]。本文研究基于DWG格式的图件坐标转换方法,研制出DWG图件坐标转换软件, 解决了转换中存在的问题。

1 DWG文件及其存储规则 1.1 DWG文件及AutoCAD软件二次开发技术

DWG格式文件是二进制的,共有5种数据形式:字符型、字节型、整型(双字节)、长整型(4字节)、双精度浮点数。DWG文件的数据结构由5部分组成,分别是头部、实体部、表部、块实体部和应急头部,其中实体部保存着该图形中的全部实体。图形实体是AutoCAD中的基本图形单元,如点、线、圆、弧、块、尺寸标注等。

ObjectARX是AutoCAD软件的二次开发软件包,提供了面向对象的开发环境及运用程序结构,是一个动态链接库。ObjectARX能共享AutoCAD的地址空间,并可通过多种方式调用AutoCAD软件的命令,同时可以直接访问数据结构和图形系统,在AutoCAD软件编辑环境下的所有动作或行为都可以利用ObjectARX中对应的函数来实现,且具有较高的效率。

1.2 DWG数据库存储组织方式

AutoCAD软件中的DWG图形文件,其实质上是存储在图形数据库中对象的集合,包括实体(点、线、面、体、尺寸、文本)和非实体对象(图层、线型、各种视图)等。

在AutoCAD中,表与对应的表记录分别代表数据库中存储的各种实体,最为常用的是块表以及块表记录。块表中存储了所有的块表记录Id,而块表记录中存储了数据库中所有图形实体的ObjectId。需要注意的是,表以及表记录中存储的都是对应实体对象的指针即Id,并非存储实体对象的数据。ObjectARX中提供了内置函数GetObject,可以方便根据ObjectId获取实体对象。ObjectId是Database数据库中实体对象在内存中存储的唯一标识,每次打开DWG文件时,数据库会自动分配并创建ObjectId,这也意味着ObjectId会随着每次打开DWG文件读取数据库发生变化,但它唯一地指向数据库中的同一个实体对象。

ObjectARX广泛应用了类的概念来简化代码结构。每一个类的主要作用在于构建、操作具体的实体对象,每一个类精确代表一个AutoCAD的组件,各组件组成不同的程序集,ObjectARX中定义了图形对象的基类为DbOjbect,其上派生出了实体类,实体类派生出曲线类,曲线类派生出线类,进而组织起数据存储和表达形式。坐标作为实体类的一个属性是有一组能够表达其特征的点的集合。

2 基于DWG文件的图件坐标转换方法 2.1 图形点对点的坐标转换方法

AutoCAD用点、线、面的形式表现图件实体,基于DWG文件的图形转换方法思路如下:首先,将复杂实体分解为一系列特征点及参数;而后,对实体的每一个特征点进行坐标转换;最后,利用转换后的点坐标重新恢复实体对象。该方法基于点对点的模式进行图件转换,图件中的每一个实体对象的转换精度取决于点的转换精度。为了保持图件信息转换前后的一致性,转换过程中只需要修改实体对象的坐标值,其余属性保持不变。可先复制待转换文件,然后逐一修改文件中实体对象的坐标,进而简化转换流程。

AutoCAD软件中内置有实体对象仿射变换的功能,ObjectARX中定义了仿射变换函数TransformBy,该函数主要实现实体对象的平移、旋转以及缩放等几何变换。由于ObjectARX中TransformBy函数封装在实体类内,并且以实体为操作对象,因此,图件转换中提取特征点坐标、点对点转换以及还原实体等流程均可由实体对象调用自身的TransformBy函数进行仿射变换来完成。需要解决的问题就是建立TransformBy仿射变换模型与大地测量4参数转换模型的联系,利用坐标转换4参数构建TransformBy函数的输入参数。

2.2 仿射变换模型与大地坐标转换模型分析

TransformBy函数使用Matrix3d类的变换矩阵进行实体对象的平移、旋转以及缩放。Matrix3d类中定义了Displacement、Rotation以及Scaling共3个成员函数,分别用于构建平移、旋转以及缩放矩阵。Displacement以平移的三维矢量作为参数,Rotation需指定旋转参考点、旋转角、旋转轴,其中,旋转角在垂直于旋转轴的平面内,并构成右手系,以逆时针方向为正。Scaling函数以缩放基点以及尺度因子为参数。地形图的4参数坐标转换可简化各实体对象以z轴为旋转轴,在x-y轴平面内平移、缩放以及旋转,如图 1所示。

图 1 AutoCAD软件中仿射变换示意图 Figure 1 Diagram of Affine Transformation in AutoCAD Software

Matrix3d类作为ObjectARX定义的矩阵类,是一个4×4方阵,以z轴为旋转轴,对应的平移、旋转、缩放方阵Rz可表示为:

${{\mathit{\boldsymbol{R}}}_{z}}=\left[ \begin{matrix} k\cos \alpha & \sin \alpha & 0 & 0 \\ -\sin \alpha & k\cos \alpha & 0 & 0 \\ 0 & 0 & k & 0 \\ \Delta x & \Delta y & 0 & 1 \\ \end{matrix} \right]$ (1)

仿射变换模型为:

$\begin{align} & \left[ x'\ \ y'\ \ z'\ \ 1 \right]=\left[ x\ \ y\ \ z\ \ 1 \right]\cdot \\ & \left[ \begin{matrix} k\cos \alpha & \sin \alpha & 0 & 0 \\ -\sin \alpha & k\cos \alpha & 0 & 0 \\ 0 & 0 & k & 0 \\ \Delta x & \Delta y & 0 & 1 \\ \end{matrix} \right] \\ \end{align}$ (2)

式(1)、式(2)中,Δx、Δy为平移量;k为缩放因子;α为旋转角;(x,y,z)为待转换坐标;(x′, y′, z′)为转换后坐标。从公式中不难发现,仿射变换模型与大地坐标转换模型相似。因此,通过仿射变换可以实现与大地坐标转换相同的功能。

大地测量中定义的x、y轴与AutoCAD软件的定义刚好相反,仿射变换中平移量(Δx,Δy)应为4参数中的(Δy,Δx);仿射变换模型与4参数转换模型中,旋转角的定义一致,因此,仿射变换中旋转矩阵可以z轴作为旋转轴,以α作为旋转角构建;4参数中定义的缩放因子m与Matrix3d中比例因子k定义不同,两者的转换方法为k=m×10-6+1.0。4参数转换中并不涉及高程,而仿射变换模型中同样对坐标z分量进行了缩放。若实体对象的坐标中含有z分量,则转换后将发生变化。ObjectARX定义的图形类中,线、弧、圆、椭圆、文本标注以及solid等不存在z分量,转换时z值当0处理,对转换无影响。二维多段线、三维多段线、填充块等实体对象具有Elevation属性,变换时,该属性会被默认为z分量,因此,需要上述6类实体进行处理,以防止转换前后其高程值产生变化,具体方法为转换前记录实体对象的Elevation或者z值,转换完成后再重新赋回。

3 图件坐标转换软件实现

本文在Visual Studio的开发平台上,使用C#语言研制了基于DWG文件的图形坐标转换软件,软件的主要流程如图 2所示。

图 2 图件坐标转换软件流程图 Figure 2 Flow Chart of Map Coordinate Transformation Software

4 图件转换实例

利用本文研制的软件对试验数据进行了处理,试验数据如图 3所示,图件上包括点、线、填充体、文字、块参考等地形图中的常见实体对象。本文提取了转换后图件中多边形填充实体边界点(图中①)、块参考的标记点(图中②)以及文字的标记点(图中③)等实体对象特征点的坐标,如表 1所示。

图 3 图件转换示例 Figure 3 Example of Map Transformation

表 1 图件转换后实体对象的特征点坐标验证/m Table 1 Coordinate Test of Feature Points in Entity Object After Map Transformation/m

现有方法在进行转换时容易出现填充体与外围边界分离的情况,从图 3中可以看出,利用本文所研制的软件进行图形转换后,点、线、面、填充体、文字、块参考等实体对象在转换后其相对关系都未发生改变,尤其是填充体,边界线与填充包裹严密,未出现分离的情况。可见,本文提出的方法较好地保证了图件上各类实体对象的一致性。表 1中列出了转换后图件上提取的填充体多边形边界特征点、文字标记点以及块参考标记点坐标,利用大地控制点转换软件,采用相同的4参数对转换前图件中提取的相同特征点坐标(文本格式)进行转换,上述两种方式获得的特征点坐标之间的差异小于1 mm。可见,利用本文研制的软件进行图形坐标转换,其转换精度取决于大地坐标转换参数的精度,图件转换过程中并不存在额外的精度损失。

5 结束语

本文提出了图件点对点的坐标转换方法,建立了仿射变换模型与大地坐标4参数转换模型的联系,基于AutoCAD软件的二次开发技术ObjectARX,研制了地形图坐标转换软件,实现了地形图图件高效、精确、一致的坐标转换。

参考文献
[1] 陈俊勇. 我国建立现代大地基准的思考[J]. 世界科技研究与发展,2003,25(3) : 1–4.
Chen Junyong. On the Establishment of Chinese Modern Geodetic Coordinate System[J]. World Sci-Tech R&D,2003,25(3) : 1–4.
[2] 刘经南, 刘晖, 邹蓉, 等. 建立全国CORS更新国家地心动态参考框架的几点思考[J]. 武汉大学学报·信息科学版,2009,34(11) : 1262–1265.
Liu Jingnan, Liu Hui, Zou Rong, et al. Some Thoughts on the Establishment of Nationwide Continuously Operating Reference Stations[J]. Geomatics and Information Science of Wuhan University,2009,34(11) : 1262–1265.
[3] 党亚明, 陈俊勇. 全球大地测量地心坐标参考框架最新进展[J]. 测绘科学,2004,29(1) : 61–63.
Dang Yaming, Chen Junyong. New Development of Global Geodetic Reference Frame[J]. Science of Surveying and Mapping,2004,29(1) : 61–63.
[4] 陈俊勇. 中国现代大地基准--中国大地坐标系统2000(CGCS 2000)及其框架[J]. 测绘学报,2008,37(3) : 269–271.
Chen Junyong. Chinese Modern Geodetic Datum-Chinese Geodetic Coordinate System 2000(CGCS 2000) and Its Frame[J]. Acta Geodaetica et Cartographica Sinica,2008,37(3) : 269–271.
[5] 程鹏飞, 文汉江, 成英燕, 等. 2000国家大地坐标系椭球参数与GRS 80和WGS 84的比较[J]. 测绘学报,2009,38(3) : 189–194.
Cheng Pengfei, Wen Hanjiang, Cheng Yingyan, et al. Parameters of the CGCS 2000 Ellipsoid and Comparisons with GRS 80 and WGS 84[J]. Acta Geodaetica et Cartographica Sinica,2009,38(3) : 189–194.
[6] 王敏, 张祖胜, 许明元, 等. 2000国家GPS大地控制网的数据处理和精度评估[J]. 地球物理学报,2005,48(4) : 817–823.
Wang Min, Zhang Zusheng, Xu Mingyuan. Data Processing and Accuracy Analysis of National 2000'GPS Geodetic Control Network[J]. Chinese Journal of Geophysics,2005,48(4) : 817–823.
[7] 陈俊勇, 杨元喜, 王敏, 等. 2000国家大地控制网的构建和它的技术进步[J]. 测绘学报,2007,36(1) : 1–8.
Chen Junyong, Yang Yuanxi, Wang Min, et al. Establishment of 2000 National Geodeitc Control Network of China and Its Technological Progress[J]. Acta Geodaetica et Cartographica Sinica,2007,36(1) : 1–8.
[8] 姜卫平, 马强, 刘鸿飞. CORS系统中坐标移动转换方法及应用[J]. 武汉大学学报·信息科学版,2008,33(8) : 775–778.
Jiang Weiping, Ma Qiang, Liu Hongfei. Coordinate Mobile Transformation in CORS System and Its Application[J]. Geomatics and Information Science of Wuhan University,2008,33(8) : 775–778.
[9] 谢鸣宇, 姚宜斌. 三维空间与二维空间七参数转换参数求解新方法[J]. 大地测量与地球动力学,2008,28(2) : 104–109.
Xie Mingyu, Yao Yibin. A New Method for Solution of Seven-Parameter Transformation Between 3D and 2D Spaces[J]. Journal of Geodesy and Geodynamics,2008,28(2) : 104–109.
[10] 姚宜斌, 孔建. 基于DXF文件的图件转换方法研究及程序实现[J]. 大地测量学与地球动力学,2011,31(1) : 117–122.
Yao Yibin, Kong Jian. Research on Graphic Conversion Method and Program Implementation Based on DXF File[J]. Journal of Geodesy and Geodynamics,2011,31(1) : 117–122.