子午線弧長正反算

2021-08-18 08:51:07 字數 1281 閱讀 8858

子午線弧長正反解是地圖數學基礎解算重要內容之一,本程式以地圖投影類為基礎,以類函式的形式提供子午線弧長正反解的實現。該**在vs2010上測試,計算數度為1e10-8公尺,1e10-9度。

// 子午線弧長計算係數

double m0 ;

// = msemiaxisa * (1-me2);

double m2 ;

// = 3*me2*m0/2;

double m4 ;

// = 5*me2*m2/4;

double m6 ;

// = 7*me2*m4/6;

double m8 ;

// = 9*me2*m6/8;

double a0 ;

// = m0+m2/2+3*m4/8+5*m6/16+35*m8/128;

double a2 ;

// = m2/2+m4/2+15*m6/32+7*m8/16;

double a4 ;

// = m4/8+3*m6/16+7*m8/32;

double a6 ;

// = m6/32+m8/16;

double a8 ;

// = m8/128;

public:

// 子午線弧長正解

double latitude2merdian(double latitude_in);

// 子午線弧長反解

double merdian2latitude(double x_in);

// 設定橢球長短軸

void setparameterearth(double axisa, double axisb);

};file *.cpp

// 字午線弧長計算係數

this->m0 = msemiaxisa * (1-me2);

this->m2 = 3*me2*m0/2;

this->m4 = 5*me2*m2/4;

this->m6 = 7*me2*m4/6;

this->m8 = 9*me2*m6/8;

this->a0 = m0+m2/2+3*m4/8+5*m6/16+35*m8/128;

this->a2 = m2/2+m4/2+15*m6/32+7*m8/16;

this->a4 = m4/8+3*m6/16+7*m8/32;

this->a6 = m6/32+m8/16;

this->a8 = m8/128;

}// 子午線弧長正解

// 子午線弧長反解

}// 設定橢球長短軸