2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

Android系統下坐標系統轉換開發

來源:期刊VIP網所屬分類:軟件開發時間:瀏覽:

  [摘要]闡述了一種新的坐標系轉換方法,講述了該方法的設計流程及數據準備。最后給出了本程序C++語言的部分代碼及實際運行效果

  [關鍵詞] 7參數 ;坐標系轉換 ;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 文獻標識碼: A 文章編號:

  1 引言:

  筆者所在城市不久前進行了該城市坐標系統的轉換工作,大規模的數據資料已經批量轉換完畢。在一定時間階段內工作中,經常需要進行對甲方單位提供的原有1954北京坐標系數據至1980西安坐標系的轉換以滿足作業人員以及甲方單位對新系統成果的要求。考慮到個別地區作業條件特殊情況,結合當今Android智能手機的大量普及的實際情況,筆者參考臺式微機上比較成熟的坐標系統轉換方法,加以改進移植到今天大量普及的Android智能手機上,以實現及時坐標成果轉換要求。該城市的坐標轉換7參數已經全部計算完成。在我單位的勘察設計內外業工作中積累了大量的1954北京坐標系成果的原始數據,特別是在第二次國土調查要求使用1980西安坐標系,2000國家坐標系也于2008年7月正式啟用后,本程序能部分解決測繪外業人員的坐標轉換問題。

  本程序的特點就在于它能根據任意7參數實現1954北京坐標系至1980西安坐標系的轉換。

  2 程序思路及算法

  2.1轉換所需7參數的計算

  北京1954 坐標系和西安1980 坐標系之間的轉換其實是兩種不同的橢球參數之間的轉換,一般而言比較嚴密的是用七參數布爾莎模型,即X 平移,Y 平移,Z 平移,X 旋轉(WX),Y 旋轉(WY),Z 旋轉(WY),尺度變化(DM)。若得七參數就需要在一個地區提供3 個以上的公共點坐標對(即北京54 坐標下x、y、z 和西安80 坐標系下x、y、z)。模型為:

  2.2主程序運行流程圖

  平面坐標轉大地坐標、空間直角坐標轉大地坐標在軟件中采用迭代的方法進行計算。在空間直角坐標系下采用最小二乘法原理求得參數,然后利用多項式擬合進一步提高轉換參數精度。

  程序主要代碼如下:

  //最小二乘法

  struct Matrix

  {

  int row,col;//row為行數,col為列數

  double **pm;//指向矩陣二維數組的指針

  };

  //初始化矩陣mt,并置矩陣的行為row,列為col

  void InitMatrix(struct Matrix *mt,int row,int col)

  {

  int i;

  //指定矩陣的行和列

  mt->row=row;

  mt->col=col;

  //為矩陣分配內存

  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的轉置

  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 總結

  北京54坐標系和西安80坐標系其實是一種橢球參數的轉換,作為這種轉換在同一個橢球里的轉換都是嚴密的,而在不同的橢球之間的轉換是不嚴密,因此不存在一套轉換參數可以全國通用的,在每個地方會不一樣,其是兩個不同的橢球基準。兩個橢球間的坐標轉換,一般而言比較嚴密的是用七參數布爾莎模型。

  本程序在Android2.2環境下通過測試,應用在筆者所在城市第二次土地調查、土地利用規劃、日常的內外業測繪工作中,經多次使用驗證,轉換結果精確使用方便,尤其野外不適合攜帶筆記本等計算工具的特殊環境下使用。

  參考文獻:

  [1] 彭愛文 曹佩瑤 平面坐標轉換方法探討及轉換軟件的設計思路[J]. 測繪與空間地理信息, 2007, 30(3): 189-191.

  [2]武漢測繪科技大學《測量學》編寫組編著(陸國勝修訂).測量學(第三版).北京:測繪出版社,1991

主站蜘蛛池模板: 芮城县| 巴林右旗| 元氏县| 凤冈县| 灌云县| 阳山县| 丽江市| 都江堰市| 泸水县| 五原县| 金堂县| 河北省| 乌鲁木齐市| 花莲县| 马尔康县| 阜平县| 庐江县| 沅江市| 岗巴县| 威远县| 阿坝县| 永善县| 清新县| 新沂市| 宁安市| 蓝田县| 临武县| 京山县| 安达市| 新平| 西平县| 河北省| 乐陵市| 阿瓦提县| 莱芜市| 聂拉木县| 柞水县| 湟中县| 南开区| 榕江县| 金湖县|