楊 鋒
(中鐵二院工程集團有限責任公司,四川成都 610031)
An Easily Implemented Projection and Transformation Software for Railway Engineering Topographic Map
YANG Feng
一種易實現(xiàn)的鐵路工程地形圖投影變換軟件
楊鋒
(中鐵二院工程集團有限責任公司,四川成都610031)
An Easily Implemented Projection and Transformation Software for Railway Engineering Topographic Map
YANG Feng
摘要針對鐵路工程領(lǐng)域中,基于同一地理橢球構(gòu)建的不同坐標系或采用以某一地理橢球為基準,保證橢球中心位置、定向和扁率不變,僅改變長、短半軸的方式構(gòu)造的工程橢球形成的不同坐標系之間投影變換的需求,直接以AutoCAD軟件為平臺,設計、開發(fā)地形圖投影變換軟件,并采用ArcEngine庫提供的坐標正反算函數(shù)進行運算。這種實現(xiàn)方式無需對復雜的投影變換公式進行編碼,可以更多地關(guān)注業(yè)務流,降低了開發(fā)難度,易于實現(xiàn),而且不損失數(shù)據(jù)和信息。
關(guān)鍵詞AutoCADArcEngine地理橢球投影變換
1概述
工程領(lǐng)域一般采用AutoCAD軟件加載其固有格式(*.DWG或*.DXF)的數(shù)字地形圖進行設計,但該軟件未能提供針對地形圖數(shù)據(jù)投影變換的功能[1]。通常的處理方法是將數(shù)據(jù)轉(zhuǎn)換到GIS軟件中進行投影變換,然后再轉(zhuǎn)回AutoCAD格式。此方法步驟繁瑣,易出錯,且來回轉(zhuǎn)換會造成數(shù)據(jù)、信息丟失。
針對鐵路工程領(lǐng)域中,基于同一地理橢球構(gòu)建的不同坐標系或采用以某一地理橢球為基準,保證橢球中心位置、定向和扁率不變,僅改變長、短半軸的方式構(gòu)造的工程橢球,形成的不同坐標系之間投影變換的需求,直接以AutoCAD軟件為平臺,設計、開發(fā)地形圖投影變換軟件,并采用ArcEngine庫提供的坐標正反算函數(shù)進行運算。這種實現(xiàn)方式無需對復雜的投影變換公式進行編碼,可以更多的關(guān)注業(yè)務流,降低了開發(fā)難度,而且不損失數(shù)據(jù)和信息。
2鐵路工程獨立坐標系建立方法
地形圖投影的投影面高程H為大地高,通常情況下H=0。鐵路建設工程中,為了滿足投影長度變形小于限差的要求,需要改變投影面高程H=h進行投影。為了便于計算,可以以參考橢球為基準,采用橢球膨脹法構(gòu)建一個新的工程橢球,然后在新的工程橢球中,利用投影面高程H′=0進行投影計算。橢球膨脹法是以一個參考橢球為基準,采用保證橢球中心位置、定向、扁率不變,僅改變長、短半軸長度的方法構(gòu)建一個新的工程橢球。新建工程橢球長半軸增量Δa與h之間存在相關(guān)關(guān)系,可以用函數(shù)Δa=f(h)表示。
梅熙[2]、鄧興升[3]等詳細論述了在一個已知的橢球中,若投影面高程H=h時,可以采用“保證橢球中心位置、方向、扁率不變,橢球長半軸直接加投影面大地高”的方法構(gòu)建新的工程橢球,即可以得到
Δa=f(h)=h
該方法滿足長度投影變形限差要求,適合帶狀的鐵路工程,新建工程橢球與參考橢球之間的關(guān)系如圖1所示。
圖1 參考橢球面與工程橢球面
3AutoCAD和ArcEngine開發(fā)方法
AutoCAD是工程領(lǐng)域被廣泛使用的CAD設計軟件,具有強大的制圖功能和開放的體系結(jié)構(gòu),易使用,其本身是一個插件框架系統(tǒng),允許用戶和開發(fā)者對其進行編碼擴充和修改[4,5]。AutoCAD不僅提供AutoLISP腳本語言[6],而且還支持高級語言開發(fā),提供了大量的開發(fā)接口,較常用的如ObjectArx.NET接口,支持.NET語言開發(fā)[7,8]。通過ObjectArx.NET,用戶可以方便高效地訪問和修改DWG,DXF數(shù)據(jù)中的點、線、塊、圓弧、文本、填充等實體的幾何和屬性信息[9]。因此,本文采用ObjectArx.NET進行AutoCAD數(shù)據(jù)中實體幾何信息的獲取和修改。
ArcEngine是ESRI公司封裝的一套GIS運行庫,在測繪領(lǐng)域具有廣泛的應用[10]。它提供了大量的空間分析與計算的接口和方法,可以采用C++、.NET等高級語言開發(fā)[11]。本文采用其提供的坐標投影變換功能進行坐標投影正反算。C#代碼如下:
private IPoint GetProject(double x, double y)
{
IPoint pt=new PointClass();
pt.PutCoords(x, y);
IGeometry geo=(IGeometry)pt;
geo.SpatialReference=origSP;
geo.Project(destSP);
return pt;
}
geo.SpatialReference=origSP是為幾何對象定義一個坐標系統(tǒng);geo.Project(destSP)將幾何對象從origSP坐標系統(tǒng)投影變換至destSP坐標系統(tǒng),origSP和destSP必須保證橢球參數(shù)一致。
4軟件設計與實現(xiàn)
該地形圖投影變換軟件將加載地形圖數(shù)據(jù)文件,然后依次遍歷每一個實體,獲得其位置或者節(jié)點坐標,然后進行投影變換操作,利用變換后的坐標值修改實體位置或者節(jié)點坐標,整個過程都在AutoCAD軟件中完成,流程如圖2所示。
圖2 軟件流程
針對鐵路工程的地形圖投影變換,假設:參考橢球長半軸為a,短半軸為b。則
扁率
第一偏心率
該橢球中,某投影方式下坐標為(X,Y,Z)的點P,通過坐標反算可以得到其經(jīng)度為L,緯度為B。且該點處子午圈曲率半徑M為
(1)
其中,W2=1-e2sin2B。
該點卯酉圈曲率半徑N為
(2)
在該橢球中,需要以另外一種投影方式,且投影面高程H=h,將點P進行投影變換。
首先新建工程橢球:相對于投影變換前的橢球,新建的工程橢球長半軸a工=a+Δa=a+h,由大地微分公式可知:當橢球中心位置、定向、扁率不變,僅改變長半軸時,點P在新的工程橢球中,相對于原始橢球,點位的大地經(jīng)度L不變,緯度B將發(fā)生變化[12,13]。變化量ΔB為
(3)
那么,在新的工程橢球中,點P對應的經(jīng)度為L,緯度為B+ΔB。
最后,在新的工程橢球中,以投影面高程H′=0,按照選擇的目標投影方式進行坐標正算,得到投影變換后的坐標?!巴队白儞Q”的詳細流程如圖3所示。
圖3 投影變換流程
地形圖投影變換軟件采用C#語言開發(fā),通過ObjectArx.NET在AutoCAD軟件中直接訪問地形圖數(shù)據(jù)文件中的實體,并利用ArcEngine進行投影變換計算,然后修改實體節(jié)點坐標。軟件界面如圖4所示。
圖4 軟件界面
軟件不僅能夠直接從PRJ文件中獲得坐標信息,而且支持自定義橢球及投影坐標系統(tǒng),如圖5所示。
圖5 坐標系統(tǒng)設置
5精度驗證
為了驗證轉(zhuǎn)換精度,選取某海外鐵路CPII控制點610個,采用“WGS84橢球、投影面高程H=100 m,蘭勃特等角切圓錐投影”坐標系統(tǒng),依工程需要將其轉(zhuǎn)換為“WGS84橢球、投影面高程H=0 m,標準UTM投影”坐標系統(tǒng)。分別采用本文設計并實現(xiàn)的軟件和TGO[14]軟件進行數(shù)據(jù)處理,統(tǒng)計兩份結(jié)果控制點坐標的距離差,如表1所示。
表1 距離差統(tǒng)計結(jié)果 mm
由距離統(tǒng)計結(jié)果可知:坐標轉(zhuǎn)換精度較高,能夠滿足鐵路設計各階段地形圖投影變換的要求。
參考文獻
[1]湯小林.AutoCAD下圖形高斯投影換帶方法的實現(xiàn)[J].礦山測量,2008(2):24-26
[2]梅熙,王國祥.高速鐵路坐標轉(zhuǎn)換方法探討[J].高速鐵路技術(shù),2012(4):6-10
[3]鄧興升,湯仲安,花向紅,等.橢球變換后的高斯投影正反算算法[J].大地測量與地球動力學,2010(2):49-52
[4]林春峰,黃華平,閔世平.基于AutoCAD平臺的線路橫斷面線提取系統(tǒng)的設計與實現(xiàn)[J].鐵道勘察,2013(4):6-8
[5]楊鋒,林春峰,程昂.基于ObjectArx地形圖數(shù)據(jù)標準統(tǒng)一軟件的設計與實現(xiàn)[J].鐵道勘察,2014(5):5-7
[6]劉喜平.基于AutoLISP的AutoCAD二次開發(fā)技術(shù)[J]. 機械制造與自動化,2011(4):128-129
[7]杜剛,劉學東,張磊.基于ObjectArx的AutoCAD二次開發(fā)及應用實例[J].機械設計與制造,2004(3):30-32
[8]于蕭榕,郭昌言,陳剛.結(jié)合Objectarx和C#進行AutoCAD二次開發(fā)框架的研究[J].科學技術(shù)與工程,2010(20):5085-5090
[9]AutoCAD R13/R14/R2000 DWG file Spercification Version 2.0. Published by OpenDWG Alliance[EB/OL]. www.openDwg.org 2002年2月
[10]任學申,張月香.基于ArcEngine的CAD數(shù)據(jù)與ArcGIS數(shù)據(jù)互換[J].鐵道勘察,2014(5):8-11
[11]謝小蕙,向南平.基于ArcGIS Engine的開發(fā)原理和方法的探討[J].城市勘測,2006(2):46-48
[12]邊少鋒,柴洪洲,金際航.大地坐標系與大地基準[M].北京:國防工業(yè)出版社,2005
[13]邱云峰,倪津.不同投影歸算面間的坐標換算[J].測繪通報,2001(9):12-13
[14]張述清.全球定位系統(tǒng)的數(shù)據(jù)處理系統(tǒng)——TGO功能擴展應用[J].測繪通報,2006(10):36-38
中圖分類號:P209; P226+.3
文獻標識碼:B
文章編號:1672-7479(2015)01-0001-03
作者簡介:楊鋒(1965—),男,1987年畢業(yè)于西南交通大學鐵道航空勘察專業(yè),工學學士,高級工程師。
收稿日期:2014-12-12