曹健,王晏彬,盧云輝
(1.大連市勘察測繪研究院有限公司,遼寧大連 116061;2.中國建筑第八工程局大連公司,遼寧大連 116061)
由于現階段我國測繪成果的坐標系統不統一,有1954年北京坐標系、1980西安坐標系、地方獨立坐標系,同時2000國家大地坐標系也于2008年7月正式啟用。所以在勘察測繪行業,我們不可避免地要進行測繪成果的坐標系轉換。常用的轉換方法主要有四參數轉換和七參數轉換兩種。如果地面兩點的距離小于10 km,幾乎可以忽略因為采用不同的橢球參數對于轉換精度的影響;如果地面兩點的距離超過15 km,必須考慮兩種不同坐標系所采用的橢球參數,避免因橢球參數的差異,導致點位換算后精度過低。換言之,七參數是一種空間直角坐標系的轉換模型,而四參數是一種平面直角坐標系的轉換模型。所以,采用七參數轉換方法能夠很好地保證轉換的精度,而在面積較大區域,四參數轉換不能滿足精度要求。
我們知道,很多軟件都有利用七參數將一個或多個點進行轉換的功能,如在ESRI公司的ArcCatalog軟件中,有利用七參數將GIS格式數據進行全庫轉換的功能,十分方便。但是對于整個AutoCAD數據文件,進行坐標系統轉換,生成另一個坐標系統的AutoCAD文件的軟件卻十分罕見。基于此,筆者對于這一課題進行了嘗試,并且獲得了很好的效果。
首先選取要進行坐標轉換區域的公共點,獲得公共點在原坐標系統下和目標坐標系統下的三維坐標;根據控制點的坐標,通過間接平差的方法解求七參數;然后用公共點的坐標檢驗七參數的可靠性,如果不滿足要求,則需重新計算七參數。七參數滿足要求以后,轉換程序打開每一個需要轉換的AutoCAD數據文件,獲取每一個數據文件中的每一個元素的圖形坐標串以及其屬性數據,然后新建一個AutoCAD數據文件,將每一個元素在原始坐標系統中的坐標串數組,經過七參數轉換生成新坐標系統下的坐標串數組,附帶屬性數據生成新的元素,保存在新的AutoCAD數據文件中,完成坐標系統的轉換。

圖1 坐標系轉換流程圖
七參數,即兩個空間直角坐標系之間轉換的7個參數,包括3個軸的旋轉角、3個坐標增量和1個尺度因子。要解求七參數,就要至少知道3個及以上公共點的空間直角坐標(X,Y,Z)。常用的七參數解求方法主要有三種:三點法、多點法和嚴密平差法。當對坐標轉換的精度要求不高,或者只有3個點時,可以采用三點法。當對轉換的精度要求較高,而且又能提供3個以上的公共點時,可以采用多點法。當對轉換的精度要求非常高時,需要采用嚴密平差法。由參考文獻[1]可知,三點法是一種近似的七參數求解方法,對于3個公共點,按某種轉換模型可以列出9個方程,取其中7個方程就能求得七參數。而多點法則利用了更多的公共點,進行平差之后可以得到更好的解算結果。設兩個空間直角坐標系中有n個公共點(n〉3),它們在兩個坐標系中的坐標分別為(Xi,Yi,Zi)和(),記△Xi=-Xi,△Yi=-Yi,△Zi=-Zi,認為△Xi,△Yi,△Zi是含有隨機誤差的觀測值,并且視其為同等精度觀測值,將七參數 Xi,Yi,Zi,rx,ry,rz,s作為未知數,采用W模型,按最小二乘法求解即可得七參數。但采用此法求解時是將(△Xi,△Yi,△Zi)當作等權觀測值,沒有考慮它們的相關性和精度差異,因而也是一種近似的求法。
嚴密平差法考慮(Xi,Yi,Zi)和()會受到不同的誤差影響,因此它們不是等精度的觀測值,也就是要將它們當作不等精度的觀測值來處理。在這種情況下,轉換模型除了要將七參數作為未知數外,還應取公共點在某個空間直角坐標系統中的坐標作為未知參數,然后利用轉換模型建立誤差方程,按照相關平差方法求解,即可得到七參數。這種方法在理論上最嚴密,求解精度最高,但數學模型也最復雜。上述七參數求解數學模型的計算公式,可以參照參考文獻[1]。
在本項目中,筆者將一批地方獨立坐標系的Auto-CAD數據文件轉換成為1980西安坐標系下的成果,選擇了一定數目的公共點以后,利用多點法求得七參數。為了驗證該套七參數的正確性,筆者將部分公共點在地方獨立坐標系中的坐標利用該套七參數,求得1980西安坐標系中的坐標,并與該公共點的已知的坐標進行比對。從下表可以看出,精度符合要求,能夠作為該區域的轉換七參數來使用。

利用七參數解求坐標與已知坐標對照表 表1
在Visual Studio開發環境中,加載AutoCAD提供的類庫,利用C#進行二次開發,來完成AutoCAD數據的坐標系統轉換。創建 AcadApplication、AcadDocument對象,并初始化AcadModelSpace。利用其 SelectionSet獲得選擇集,進入第一個循環,遍歷AutoCAD數據中的每一個圖形,獲得其屬性信息。進入第二個循環,遍歷該圖形的每一個點,獲得其在原始坐標系下的三維坐標值(X,Y,Z)original;利用七參數,即3個軸的旋轉角(rx,ry,rz)、3 個坐標增量(△X,△Y,△Z)、1 個尺度因子(s)和坐標轉換公式,生成該點在新坐標系統下的三維坐標值(X,Y,Z)new,完成該循環并最終形成該圖形在新坐標系統下的三維坐標串數組。

創建一個新的AutoCAD數據文件,根據在新坐標系統下的三維坐標串數組以及該對象在原AutoCAD數據中的線型、顏色、圖層、字體文件、字高、傾斜角、塊名、插入比例等屬性信息,利用AcadModelSpace對象的 AddCircle、Add3DPoly、AddArc、InsertBlock、AddEllipse、AddLine 、AddPoint 、AddPolyline 、AddText、AddMText、AddMLine等方法[3]在新建的 AutoCAD 數據文件中生成對應的圖形,即完成數據的轉化[2],由于該方案的獨特轉換方式,屬性數據無丟失,能夠最大限度地保證數據的原樣。
將要轉換的AutoCAD原始數據文件存放到一個文件夾中,并選擇該文件夾;設置目標數據文件夾,即經坐標系轉換后的AutoCAD數據文件存儲的位置。在系統界面中輸入七參數,點擊確定,如圖2所示,即可完成轉換。由此可見,該程序操作非常簡便,沒有多余的人工干預,對用戶的要求低,取得了很好的效果。

圖2 系統操作界面
(1)該方案利用公共點解求七參數,然后利用七參數進行坐標系統轉換,直接將原坐標系統的Auto-CAD文件轉換成目標坐標系統的AutoCAD文件,中間過程沒有數據格式轉換,數據屬性信息無丟失,操作方便,轉換效率高。
(2)該方案經過了項目的測試,應用在第二次土地調查、土地利用規劃等多個項目中,經多次使用驗證,轉換結果精確,操作非常簡便。
[1]劉大杰,施一民,過靜.全球定位系統(GPS)的原理與數據處理[M].上海:同濟大學出版社,1996.
[2]曹健,李國忠,徐效波等.Microstation到AutoCAD的數據轉換解決方案研究[J].城市勘測,2009(1).
[3]Autodesk公司.AutoCAD2010 Develop Help.
[4]張廣蔚,付新雷,肖先華等.一種三維直角坐標轉換7參數模型的改進方法[J].黑龍江科技信息,2011(4).
[5]李征航,黃勁松.GPS測量與數據處理[M].武漢:武漢大學出版社,2005.
[6]GB/T 18314-2009.全球定位系統(GPS)測量規范[S].