子午線弧長正反解是地圖數學基礎解算重要內容之一,本程式以地圖投影類為基礎,以類函式的形式提供子午線弧長正反解的實現。該**在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;
}// 子午線弧長正解
// 子午線弧長反解
}// 設定橢球長短軸