期刊VIP學(xué)術(shù)指導(dǎo) 符合學(xué)術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:軟件開發(fā)時(shí)間:瀏覽:次
[摘要]闡述了一種新的坐標(biāo)系轉(zhuǎn)換方法,講述了該方法的設(shè)計(jì)流程及數(shù)據(jù)準(zhǔn)備。最后給出了本程序C++語言的部分代碼及實(shí)際運(yùn)行效果
[關(guān)鍵詞] 7參數(shù) ;坐標(biāo)系轉(zhuǎn)換 ;Android
Abstract: This paper describes a new method of coordinate system conversion, described the design of the method and the data preparation process. Finally, the language of the proceedings of C++ code and the actual operation of the key results
Key words: 7 parameters;coordinate system conversion;Android
中圖分類號: P286+.1 文獻(xiàn)標(biāo)識碼: A 文章編號:
1 引言:
筆者所在城市不久前進(jìn)行了該城市坐標(biāo)系統(tǒng)的轉(zhuǎn)換工作,大規(guī)模的數(shù)據(jù)資料已經(jīng)批量轉(zhuǎn)換完畢。在一定時(shí)間階段內(nèi)工作中,經(jīng)常需要進(jìn)行對甲方單位提供的原有1954北京坐標(biāo)系數(shù)據(jù)至1980西安坐標(biāo)系的轉(zhuǎn)換以滿足作業(yè)人員以及甲方單位對新系統(tǒng)成果的要求。考慮到個(gè)別地區(qū)作業(yè)條件特殊情況,結(jié)合當(dāng)今Android智能手機(jī)的大量普及的實(shí)際情況,筆者參考臺式微機(jī)上比較成熟的坐標(biāo)系統(tǒng)轉(zhuǎn)換方法,加以改進(jìn)移植到今天大量普及的Android智能手機(jī)上,以實(shí)現(xiàn)及時(shí)坐標(biāo)成果轉(zhuǎn)換要求。該城市的坐標(biāo)轉(zhuǎn)換7參數(shù)已經(jīng)全部計(jì)算完成。在我單位的勘察設(shè)計(jì)內(nèi)外業(yè)工作中積累了大量的1954北京坐標(biāo)系成果的原始數(shù)據(jù),特別是在第二次國土調(diào)查要求使用1980西安坐標(biāo)系,2000國家坐標(biāo)系也于2008年7月正式啟用后,本程序能部分解決測繪外業(yè)人員的坐標(biāo)轉(zhuǎn)換問題。
本程序的特點(diǎn)就在于它能根據(jù)任意7參數(shù)實(shí)現(xiàn)1954北京坐標(biāo)系至1980西安坐標(biāo)系的轉(zhuǎn)換。
2 程序思路及算法
2.1轉(zhuǎn)換所需7參數(shù)的計(jì)算
北京1954 坐標(biāo)系和西安1980 坐標(biāo)系之間的轉(zhuǎn)換其實(shí)是兩種不同的橢球參數(shù)之間的轉(zhuǎn)換,一般而言比較嚴(yán)密的是用七參數(shù)布爾莎模型,即X 平移,Y 平移,Z 平移,X 旋轉(zhuǎn)(WX),Y 旋轉(zhuǎn)(WY),Z 旋轉(zhuǎn)(WY),尺度變化(DM)。若得七參數(shù)就需要在一個(gè)地區(qū)提供3 個(gè)以上的公共點(diǎn)坐標(biāo)對(即北京54 坐標(biāo)下x、y、z 和西安80 坐標(biāo)系下x、y、z)。模型為:
2.2主程序運(yùn)行流程圖
平面坐標(biāo)轉(zhuǎn)大地坐標(biāo)、空間直角坐標(biāo)轉(zhuǎn)大地坐標(biāo)在軟件中采用迭代的方法進(jìn)行計(jì)算。在空間直角坐標(biāo)系下采用最小二乘法原理求得參數(shù),然后利用多項(xiàng)式擬合進(jìn)一步提高轉(zhuǎn)換參數(shù)精度。
程序主要代碼如下:
//最小二乘法
struct Matrix
{
int row,col;//row為行數(shù),col為列數(shù)
double **pm;//指向矩陣二維數(shù)組的指針
};
//初始化矩陣mt,并置矩陣的行為row,列為col
void InitMatrix(struct Matrix *mt,int row,int col)
{
int i;
//指定矩陣的行和列
mt->row=row;
mt->col=col;
//為矩陣分配內(nèi)存
mt->pm=new double *[row];
下略.....
//最小二乘法求解矩陣Ax=b
int MinMul(Matrix A,Matrix b,double *x)
{
int i,j;
if(b.col!=1) return 0;
if(A.row!=b.row) return 0;
Matrix TranA;//定義A的轉(zhuǎn)置
InitMatrix0(&TranA,A.col,A.row);
MatrixTran(&A,&TranA);
中間略
int MinMul(double **A,double *b,int row,int col,double *x)
{
int r,i;
Matrix Al,bl;
Al.pm=new double *[row];
Al.row=row;
Al.col=col;
InitMatrix(&bl,row,1);
for(i=0;i
{
Al.pm[i]=A[i];
bl.pm[i][0]=b[i];
}
r=MinMul(Al,bl,x);
delete []Al.pm;
DestroyMatrix(&bl);
return r;
}
#endif
3 程序界面及其效果
4 總結(jié)
北京54坐標(biāo)系和西安80坐標(biāo)系其實(shí)是一種橢球參數(shù)的轉(zhuǎn)換,作為這種轉(zhuǎn)換在同一個(gè)橢球里的轉(zhuǎn)換都是嚴(yán)密的,而在不同的橢球之間的轉(zhuǎn)換是不嚴(yán)密,因此不存在一套轉(zhuǎn)換參數(shù)可以全國通用的,在每個(gè)地方會(huì)不一樣,其是兩個(gè)不同的橢球基準(zhǔn)。兩個(gè)橢球間的坐標(biāo)轉(zhuǎn)換,一般而言比較嚴(yán)密的是用七參數(shù)布爾莎模型。
本程序在Android2.2環(huán)境下通過測試,應(yīng)用在筆者所在城市第二次土地調(diào)查、土地利用規(guī)劃、日常的內(nèi)外業(yè)測繪工作中,經(jīng)多次使用驗(yàn)證,轉(zhuǎn)換結(jié)果精確使用方便,尤其野外不適合攜帶筆記本等計(jì)算工具的特殊環(huán)境下使用。
參考文獻(xiàn):
[1] 彭愛文 曹佩瑤 平面坐標(biāo)轉(zhuǎn)換方法探討及轉(zhuǎn)換軟件的設(shè)計(jì)思路[J]. 測繪與空間地理信息, 2007, 30(3): 189-191.
[2]武漢測繪科技大學(xué)《測量學(xué)》編寫組編著(陸國勝修訂).測量學(xué)(第三版).北京:測繪出版社,1991