孫利云
(1.國家測繪地理信息局 重慶測繪院,重慶 400015)
DLG圖形坐標(biāo)系轉(zhuǎn)換的探討
孫利云1
(1.國家測繪地理信息局 重慶測繪院,重慶 400015)
通過對DLG圖形中的圖元坐標(biāo)信息進(jìn)行提取、轉(zhuǎn)換、更新,實(shí)現(xiàn)了DLG圖形的坐標(biāo)系轉(zhuǎn)換。對于日常工作中常常遇到的DLG資料坐標(biāo)系與實(shí)際要求不一致的問題,能解決小批量DLG圖形坐標(biāo)系的轉(zhuǎn)換,操作方便快捷,成本低。
AutoCAD圖元;DLG圖形;坐標(biāo)系;轉(zhuǎn)換參數(shù)
在目前的測繪工作中,DLG圖形的坐標(biāo)系有很多,與實(shí)際要求可能不一致,將DLG圖形從一個(gè)坐標(biāo)系轉(zhuǎn)換為另一坐標(biāo)系的工作比較頻繁。如果能方便、低成本地實(shí)現(xiàn)這項(xiàng)轉(zhuǎn)換功能,對日常工作的幫助是很明顯的,特別是日常小批量的DLG圖形坐標(biāo)系轉(zhuǎn)換。
在日常測繪中,DLG圖形資料主要以高斯-克呂格投影平面坐標(biāo)系為主[1],高程與平面坐標(biāo)系無直接關(guān)系。坐標(biāo)系轉(zhuǎn)換參數(shù)的計(jì)算主要有七參數(shù)和四參數(shù)法。七參數(shù)坐標(biāo)系轉(zhuǎn)換是一種適用較廣、通用性強(qiáng)的坐標(biāo)系轉(zhuǎn)換方法[2],但計(jì)算的參數(shù)容易受高程誤差的影響。我國目前的DLG地形圖的高程都是獨(dú)立于平面坐標(biāo)系的1956黃海高程系統(tǒng)或1985國家高程基準(zhǔn)[3,4],為了避免高程精度對平面坐標(biāo)系轉(zhuǎn)換的影響,采用四參數(shù)坐標(biāo)系轉(zhuǎn)換更合適。
解決AutoCAD的DLG圖形坐標(biāo)轉(zhuǎn)換[5],主要要實(shí)現(xiàn)以下幾個(gè)技術(shù)環(huán)節(jié):AutoCAD對象的調(diào)用;AutoCAD圖元坐標(biāo)屬性的提??;坐標(biāo)轉(zhuǎn)換參數(shù)的計(jì)算;AutoCAD圖元坐標(biāo)屬性的更新。程序以VS2008平臺的C#語言[6]和AutoCAD2010來實(shí)現(xiàn)。
要實(shí)現(xiàn)對AutoCAD的操作,首先在VS2008平臺通過COM接口添加AutoCAD的引用。即在VS2008應(yīng)用程序里添加 “AutoCAD 2010 Type Library”和“AutoCAD/ObjectDBX Common 18.0 Type Library”[5,6],添加的引用應(yīng)適用于AutoCAD的版本。然后在程序里定義與AutoCAD有關(guān)的3個(gè)全局變量[6],從而實(shí)現(xiàn)對AutoCAD相關(guān)對象的操作:
AcadApplication CadApp;
AcadDocument CadDoc;
AcadModelSpace CadMspace;
在DLG地形圖中,涉及的常用圖元主要有AcDbPoint、AcDbLine、AcDbPolyline、AcDb2dPolyline、AcDb3dPolyline、AcDbSpline、AcDbText、AcDbMText、AcDbBlockReference、AcDbArc、AcDbCircle、AcDbHatch等[1]。通過對這些圖元坐標(biāo)的提取、轉(zhuǎn)換、重新賦值,實(shí)現(xiàn)對DLG圖形的坐標(biāo)系轉(zhuǎn)換。
for (int i = 0; i < MySelect.Count; i++)
{
if (MySelect.Item(i).ObjectName == "AcDbPoint")
{
AcadPoint point; //定義點(diǎn)圖元
point = (AcadPoint) MySelect.Item(i); //從選擇集中提取點(diǎn)圖元
d = (double[])point.Coordinates; //提取圖元的坐標(biāo)屬性
//用四參數(shù)坐標(biāo)轉(zhuǎn)換法計(jì)算新坐標(biāo)
double[] newPoint = TranPoint(d, this.radio_4.Checked);
point.Coordinates = newPoint; /更新坐標(biāo)屬性
point.Update();//圖元重繪
}
…
}
為便于本步驟的實(shí)現(xiàn),其中圖元AcDbHatch不應(yīng)將邊界與其分割。
四參數(shù)坐標(biāo)系轉(zhuǎn)換是對高斯投影的兩平面坐標(biāo)系的轉(zhuǎn)換,采用至少2個(gè)已知點(diǎn)對,計(jì)算X、Y的2個(gè)坐標(biāo)增量參數(shù)、1個(gè)縮放參數(shù)和1個(gè)旋轉(zhuǎn)參數(shù)。
四參數(shù)坐標(biāo)系轉(zhuǎn)換的模型為[2]:
式中,X1、Y1為源坐標(biāo);X2、Y2為轉(zhuǎn)換后的坐標(biāo);Δ x、Δ y為坐標(biāo)增量;θ為旋轉(zhuǎn)角;m為縮放系數(shù)。令a=mcosθ;b=msinθ。將式(1)用矩陣表示為:
改正數(shù)方程式為[7]:
將以上公式改寫成矩陣形式為V=-BδX+L,根據(jù)最小二乘法[7]求出參數(shù)矩陣取 1的對角矩陣。
轉(zhuǎn)換精度評估公式為:
式中,n為用于求參數(shù)的已知點(diǎn)對數(shù);v為改正數(shù);P為單位權(quán)陣。
圖形轉(zhuǎn)換測試實(shí)例使用重慶市地理信息中心解算出來的16組同名點(diǎn)重慶獨(dú)立坐標(biāo)系平面坐標(biāo)和1954北京坐標(biāo)系平面坐標(biāo),將任意3 km2的1︰2 000地形圖手動移動至同名點(diǎn)重慶獨(dú)立坐標(biāo)系平面坐標(biāo)控制范圍內(nèi),與同名點(diǎn)重慶獨(dú)立系的坐標(biāo)點(diǎn)一起,作為重慶獨(dú)立坐標(biāo)系的地形圖用于測試。
首先,利用16組同名點(diǎn)中的4個(gè)點(diǎn)A100、A105、A110、A115,采用四參數(shù)法計(jì)算重慶獨(dú)立坐標(biāo)轉(zhuǎn)換為1954北京坐標(biāo)系的轉(zhuǎn)換參數(shù),將地形圖從重慶獨(dú)立坐標(biāo)系轉(zhuǎn)換為1954北京坐標(biāo)系。轉(zhuǎn)換后的DLG地形圖,未發(fā)現(xiàn)有沒轉(zhuǎn)換的元素,也未發(fā)現(xiàn)丟失的圖元和“飛”到一邊的圖元等轉(zhuǎn)換粗差的情形。轉(zhuǎn)換后的DLG圖形和轉(zhuǎn)換前的布局一致。因無各種圖元都一致的1954北京坐標(biāo)系下對應(yīng)DLG圖形,只將轉(zhuǎn)換后地形圖上的同名點(diǎn)坐標(biāo)提取與1954北京坐標(biāo)系的同名點(diǎn)坐標(biāo)比對。其轉(zhuǎn)換處理界面見圖1,精度指標(biāo)見表1。
圖1 轉(zhuǎn)換界面示意圖
表1 不同坐標(biāo)系同名點(diǎn)坐標(biāo)比對統(tǒng)計(jì)表/m
然后,再利用4個(gè)同名點(diǎn)A100、A105、A110、A115的兩種坐標(biāo),采用四參數(shù)法計(jì)算1954北京坐標(biāo)系轉(zhuǎn)換為重慶獨(dú)立坐標(biāo)系的參數(shù),將轉(zhuǎn)換成1954北京坐標(biāo)系的地形圖和同名點(diǎn)轉(zhuǎn)換為重慶獨(dú)立坐標(biāo)系,在地形圖上提取不同圖元和不同位置的坐標(biāo)信息,與轉(zhuǎn)換前的重慶獨(dú)立坐標(biāo)系地形圖上的同位置坐標(biāo)信息進(jìn)行比對發(fā)現(xiàn),其圖元的坐標(biāo)與轉(zhuǎn)換前完全一致,精度比對如表2。
表2 轉(zhuǎn)換前后地形圖圖元坐標(biāo)比對表/m
本文主要對高斯-克呂格投影平面不同平面坐標(biāo)系進(jìn)行轉(zhuǎn)換,主要涉及地形圖的DLG常用要素。根據(jù)測試,基本能夠完成常用要素的轉(zhuǎn)換,轉(zhuǎn)換后的精度符合相關(guān)要求,各種符號也不需要再作編輯。因轉(zhuǎn)換參數(shù)中有縮放和旋轉(zhuǎn)因素,用于計(jì)算轉(zhuǎn)換參數(shù)的同名點(diǎn)位置應(yīng)離需要轉(zhuǎn)換的地形圖區(qū)域越近越好,最好能控制地形圖區(qū)域。離得越遠(yuǎn),轉(zhuǎn)換精度就越差。由于采用逐個(gè)AutoCAD圖元轉(zhuǎn)換,轉(zhuǎn)換速度較慢,一幅地形圖一般需要約3 min時(shí)間。另外,部分地形圖中的非常用圖元未編入程序中,還需要在今后的運(yùn)用中不斷擴(kuò)展。
[1] 寧津生,陳俊勇,李德仁,等.測繪學(xué)概論[M].武漢:武漢大學(xué)出版社,2008
[2] 孔祥元,郭際明,劉宗泉.大地測量學(xué)基礎(chǔ)[M].武漢:武漢大學(xué)出版社,2001
[3] CJJ8-99.城市測量規(guī)范[S].
[4] 國家測繪地理信息局職業(yè)技能鑒定指導(dǎo)中心.測繪綜合能力[M].北京:測繪出版社,2012
[5] 李冠億.深入淺出AutoCAD.NET二次開發(fā)[M].北京:中國建筑工業(yè)出版社,2012
[6] 魏汪洋,靳鯤鵬. C#從入門到精通[M].北京:化學(xué)工業(yè)出版社,2011
[7] 陶本藻,邱衛(wèi)寧.誤差理論與測量平差[M].武漢:武漢大學(xué)出版社,2012
P208
B
1672-4623(2014)04-0100-03
10.11709/j.issn.1672-4623.2014.04.034
孫利云,工程師,主要從事工程測量工作。
2014-03-18。