田芳蓮
(青海省核工業(yè)地質(zhì)局,810001)
我國完成了大量基于54坐標系的測繪成果,這些成果對國民經(jīng)濟建設具有重要的使用價值。為了消除局部平差和逐級控制帶來的不合理影響,提高大地網(wǎng)的精度,1980年我國建立了比北京54坐標系更為科學、嚴密的西安80坐標系。
為能有效的利用北京54坐標系下的大量測量成果,使北京54坐標系下的數(shù)據(jù)與西安80坐標系下的數(shù)據(jù)相互有效結(jié)合利用,北京54坐標系與西安80坐標系的轉(zhuǎn)換勢在必行。
MapGIS軟件具有圖形編輯、修改、檢索、造區(qū)等功能,從而使輸入的圖形更準確、更豐富、更漂亮。它的主要功能有:
(1)先進的可視化定位檢索功能---提供了多種圖形窗口的操作功能,包括開窗口,移動窗口,無級任意放大縮小窗口比例,顯示窗口及圖元捕獲信息等系列可視化技術功能。
(2)靈活方便的線元編輯功能---軟件將各種線型以線為單位作為線圖元來編輯。各種線圖元,根據(jù)指定的坐標點數(shù)據(jù)、線型及參數(shù),經(jīng)過算法處理產(chǎn)生各種線型。
(3)功能強大的點元編輯功能---圖形中各種注釋,各種專用符號、子圖、圖案以及圓、弧、直線歸并為點圖元來編輯。
MapGIS為了支持用戶進行二次開發(fā),而提供了完整的二次開發(fā)庫,所有用戶可以在MAPGIS平臺上開發(fā)出面向各領域的應用系統(tǒng)。當前,二次開發(fā)庫以MFC擴展類、COM組件、ActiveX控件、API函數(shù)方式提供。
(1) 基于API函數(shù)開發(fā)
這些函數(shù)的實現(xiàn)被封裝在24個動態(tài)鏈接庫(DLL)中, 因此,是獨立于開發(fā)工具的。
(2) 基于MFC類庫開發(fā)
MapGIS類庫用面向?qū)ο蟮乃枷氚岩恍〢PI功能進行封裝,形成多個派生于MFC中Cview類的可重用基類,用戶利用基于MFC的MapGIS類庫可構建面向?qū)ο筌浖こ痰腗apGIS應用系統(tǒng)。
(3) COM組件開發(fā)
MAPGIS COM組件支持用戶進行組件式開發(fā),具有二次開發(fā)便利、易于集成、無限擴展的特點,支持多種開發(fā)軟件等優(yōu)點。
北京54坐標系是采用前蘇聯(lián)的克拉索夫斯基橢球參數(shù)(長軸6 378 245 m,短軸6 356 863m,扁率1/298.3),并與前蘇聯(lián)1942年坐標系進行聯(lián)測,通過計算建立了我國大地坐標系,定名為1954年北京坐標系。其坐標的原點在前蘇聯(lián)的普爾科沃。
北京存在著坐標系存在著以下缺隙:
① 橢球參數(shù)有較大誤差;
② 參考橢球面與我國大地水準面存在著自西向東明顯的系統(tǒng)性的傾斜;
③ 幾何和物理大地測量應用的參考面不統(tǒng)一;
④定向不明確;
西安80坐標系是1980年國家大地坐標系,利用多點定位,采用地球橢球基本參數(shù)為1975年國際大地測量與地球物理聯(lián)合會第十六屆大會推薦的數(shù)據(jù)(長軸6 378 140 m,短軸6 356 755 m,扁率l/298.257 221 01)。該坐標系的大地原點設在我國中部的陜西省涇陽縣永樂鎮(zhèn),位于西安市西北方向約60 km,故稱1980年西安坐標系。
西安坐標系存在著以下優(yōu)點:
① 橢球短軸平行于地球地軸;
② 起始大地子午面平行于格林尼治天文臺起始子午面;
③ 橢球面同似大地水準面在我國境內(nèi)最為密合;
④ 系統(tǒng)經(jīng)過了整體平差。
MapGIS開發(fā)北京西安坐標系轉(zhuǎn)換流程圖如下所示:
圖1 MapGIS開發(fā)北京西安坐標系轉(zhuǎn)換流程圖
Visual C++ 6.0提供了各種各樣的數(shù)據(jù)庫訪問技術-ODBC API、MFC ODBC、DAO、OLE DB等。這些技術各有自己的特點,具有簡單、靈活、訪問速度快、可擴展性好的特點。
ODBC(Open Database Connectivity) 是客戶應用程序訪問關系數(shù)據(jù)庫時提供的一個統(tǒng)一接口,對于不同的數(shù)據(jù)庫,ODBC提供了一套統(tǒng)一的API。
(1) 文件批量處理子程序
文件批量處理子程序的部份代碼如下所示:
CString strtemp;
if(strPath.Right(1)!="\")
strtemp.Format("%s\*.*",strPath);
else
strtemp.Format("%s*.*",strPath);
CFileFind findfile;
BOOL bfind=findfile.FindFile(strtemp);
while(bfind)
{ bfind=findfile.FindNextFile();
if(strfilename==findfile.GetFileName())
{ m_filelist.AddString(findfile.GetFilePath()); }
if(findfile.IsDirectory()&&!findfile.IsDots())
{
FindFile(findfile.GetFilePath());
}
if(bstop)return;
}
(2) 北京西安坐系互轉(zhuǎn)主程序
北京西安坐系互轉(zhuǎn)主程序的部份代碼如下所示:
_GetPntNum(QTZJAi,&i,&pntN);
GetDlgItemText(IDC_repace,str1);
GetDlgItemText(IDC_repace1,str2);
for(i=1;i { _GoingClockCursor(); memset(szBufCvt,0,sizeof(szBufCvt)); memset(szBufCvt1,0,sizeof(szBufCvt1)); t=0;jj=0;jjj=0; if(_GetPnt(QTZJAi,i,&xyz,&dat,&len,&QTZJinf)<=0)continue; { for (int j = 0 ; j { if(dat[1]==str1[0])//開頭是"T" { if (dat[j]=='/') {t=t+1; continue;} else { if(t==1) { szBufCvt1[jj]=dat[j]; jj =jj+1; } } } ...... 54坐標系向80坐標系過渡是今后社會發(fā)展的需要,在逐步過渡的過程中,只要采用有效合理的措施,就可以在盡量不影響現(xiàn)有測繪成果使用方便的基礎上,避免一次轉(zhuǎn)換需要較多投入而難于實現(xiàn)。本文基于VC++結(jié)合MapGIS類庫開發(fā)出54坐標系與80坐標系互轉(zhuǎn)程序,該程序算法較合理,操作簡單,大大提高了工作效率。 [1]中國地質(zhì)大學(武漢)信息工程學院.MAPGIS地理信息系統(tǒng)開發(fā)手冊[M].武漢華地圖形數(shù)據(jù)公司.1998. [2]邊少鋒.大地坐標系與大地基準[M].北京:國防工業(yè)出版社,2005, [3]呂曉華,劉宏林.地圖投影數(shù)值變換方法綜合評述[J].測繪學院學報,2002,19(2):150—153.5 結(jié)束語