孫利云
(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。