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