孙利云
(1.国家测绘地理信息局 重庆测绘院,重庆 400015)
DLG图形坐标系转换的探讨
孙利云1
(1.国家测绘地理信息局 重庆测绘院,重庆 400015)
通过对DLG图形中的图元坐标信息进行提取、转换、更新,实现了DLG图形的坐标系转换。对于日常工作中常常遇到的DLG资料坐标系与实际要求不一致的问题,能解决小批量DLG图形坐标系的转换,操作方便快捷,成本低。
AutoCAD图元;DLG图形;坐标系;转换参数
在目前的测绘工作中,DLG图形的坐标系有很多,与实际要求可能不一致,将DLG图形从一个坐标系转换为另一坐标系的工作比较频繁。如果能方便、低成本地实现这项转换功能,对日常工作的帮助是很明显的,特别是日常小批量的DLG图形坐标系转换。
在日常测绘中,DLG图形资料主要以高斯-克吕格投影平面坐标系为主[1],高程与平面坐标系无直接关系。坐标系转换参数的计算主要有七参数和四参数法。七参数坐标系转换是一种适用较广、通用性强的坐标系转换方法[2],但计算的参数容易受高程误差的影响。我国目前的DLG地形图的高程都是独立于平面坐标系的1956黄海高程系统或1985国家高程基准[3,4],为了避免高程精度对平面坐标系转换的影响,采用四参数坐标系转换更合适。
解决AutoCAD的DLG图形坐标转换[5],主要要实现以下几个技术环节:AutoCAD对象的调用;AutoCAD图元坐标属性的提取;坐标转换参数的计算;AutoCAD图元坐标属性的更新。程序以VS2008平台的C#语言[6]和AutoCAD2010来实现。
要实现对AutoCAD的操作,首先在VS2008平台通过COM接口添加AutoCAD的引用。即在VS2008应用程序里添加 “AutoCAD 2010 Type Library”和“AutoCAD/ObjectDBX Common 18.0 Type Library”[5,6],添加的引用应适用于AutoCAD的版本。然后在程序里定义与AutoCAD有关的3个全局变量[6],从而实现对AutoCAD相关对象的操作:
AcadApplication CadApp;
AcadDocument CadDoc;
AcadModelSpace CadMspace;
在DLG地形图中,涉及的常用图元主要有AcDbPoint、AcDbLine、AcDbPolyline、AcDb2dPolyline、AcDb3dPolyline、AcDbSpline、AcDbText、AcDbMText、AcDbBlockReference、AcDbArc、AcDbCircle、AcDbHatch等[1]。通过对这些图元坐标的提取、转换、重新赋值,实现对DLG图形的坐标系转换。
for (int i = 0; i < MySelect.Count; i++)
{
if (MySelect.Item(i).ObjectName == "AcDbPoint")
{
AcadPoint point; //定义点图元
point = (AcadPoint) MySelect.Item(i); //从选择集中提取点图元
d = (double[])point.Coordinates; //提取图元的坐标属性
//用四参数坐标转换法计算新坐标
double[] newPoint = TranPoint(d, this.radio_4.Checked);
point.Coordinates = newPoint; /更新坐标属性
point.Update();//图元重绘
}
…
}
为便于本步骤的实现,其中图元AcDbHatch不应将边界与其分割。
四参数坐标系转换是对高斯投影的两平面坐标系的转换,采用至少2个已知点对,计算X、Y的2个坐标增量参数、1个缩放参数和1个旋转参数。
四参数坐标系转换的模型为[2]:
式中,X1、Y1为源坐标;X2、Y2为转换后的坐标;Δ x、Δ y为坐标增量;θ为旋转角;m为缩放系数。令a=mcosθ;b=msinθ。将式(1)用矩阵表示为:
改正数方程式为[7]:
将以上公式改写成矩阵形式为V=-BδX+L,根据最小二乘法[7]求出参数矩阵取 1的对角矩阵。
转换精度评估公式为:
式中,n为用于求参数的已知点对数;v为改正数;P为单位权阵。
图形转换测试实例使用重庆市地理信息中心解算出来的16组同名点重庆独立坐标系平面坐标和1954北京坐标系平面坐标,将任意3 km2的1︰2 000地形图手动移动至同名点重庆独立坐标系平面坐标控制范围内,与同名点重庆独立系的坐标点一起,作为重庆独立坐标系的地形图用于测试。
首先,利用16组同名点中的4个点A100、A105、A110、A115,采用四参数法计算重庆独立坐标转换为1954北京坐标系的转换参数,将地形图从重庆独立坐标系转换为1954北京坐标系。转换后的DLG地形图,未发现有没转换的元素,也未发现丢失的图元和“飞”到一边的图元等转换粗差的情形。转换后的DLG图形和转换前的布局一致。因无各种图元都一致的1954北京坐标系下对应DLG图形,只将转换后地形图上的同名点坐标提取与1954北京坐标系的同名点坐标比对。其转换处理界面见图1,精度指标见表1。
图1 转换界面示意图
表1 不同坐标系同名点坐标比对统计表/m
然后,再利用4个同名点A100、A105、A110、A115的两种坐标,采用四参数法计算1954北京坐标系转换为重庆独立坐标系的参数,将转换成1954北京坐标系的地形图和同名点转换为重庆独立坐标系,在地形图上提取不同图元和不同位置的坐标信息,与转换前的重庆独立坐标系地形图上的同位置坐标信息进行比对发现,其图元的坐标与转换前完全一致,精度比对如表2。
表2 转换前后地形图图元坐标比对表/m
本文主要对高斯-克吕格投影平面不同平面坐标系进行转换,主要涉及地形图的DLG常用要素。根据测试,基本能够完成常用要素的转换,转换后的精度符合相关要求,各种符号也不需要再作编辑。因转换参数中有缩放和旋转因素,用于计算转换参数的同名点位置应离需要转换的地形图区域越近越好,最好能控制地形图区域。离得越远,转换精度就越差。由于采用逐个AutoCAD图元转换,转换速度较慢,一幅地形图一般需要约3 min时间。另外,部分地形图中的非常用图元未编入程序中,还需要在今后的运用中不断扩展。
[1] 宁津生,陈俊勇,李德仁,等.测绘学概论[M].武汉:武汉大学出版社,2008
[2] 孔祥元,郭际明,刘宗泉.大地测量学基础[M].武汉:武汉大学出版社,2001
[3] CJJ8-99.城市测量规范[S].
[4] 国家测绘地理信息局职业技能鉴定指导中心.测绘综合能力[M].北京:测绘出版社,2012
[5] 李冠亿.深入浅出AutoCAD.NET二次开发[M].北京:中国建筑工业出版社,2012
[6] 魏汪洋,靳鲲鹏. C#从入门到精通[M].北京:化学工业出版社,2011
[7] 陶本藻,邱卫宁.误差理论与测量平差[M].武汉:武汉大学出版社,2012
P208
B
1672-4623(2014)04-0100-03
10.11709/j.issn.1672-4623.2014.04.034
孙利云,工程师,主要从事工程测量工作。
2014-03-18。