1、参数说明
双精度类型:
圆周率值:PI = 3.14159265358979
中央经线:CenterL
RHO = 206264.8062471
A:ParamA
B:ParamB
C:ParamC
D:ParamD
E:ParamE
Const ZERO As Double = 0.000000000001
80椭球常数
椭球长半轴:aRadius = 6378140
椭球短半轴:bRadius = 6356755.29
椭球扁率:ParaAF = 1/ 298.257
椭球第一偏心率:ParaE1 = 6.69438499958795E-03
椭球第二偏心率:ParaE2 = 6.73950181947292E-03
极点子午圈曲率半径:ParaC = 6399596.65198801
k0:Parak0 = 1.57048687472752E-07
k1:Parak1 = 5.05250559291393E-03
k2:Parak2 = 2.98473350966158E-05
k3:Parak3 = 2.41627215981336E-07
k4:Parak4 = 2.22241909461273E-09
2、算法描述
初始化参数
Double e;
Double a;
e = ParaE2;
ParaC = aRadius / (1 - ParaAF);
ParamA = 1 + (3 / 6) * e + (30 / 80) * Power(e, 2) + (35 / 112) * Power(e, 3) + (630 / 2304) * Power(e, 4);
ParamB = (1 / 6) * e + (15 / 80) * Power(e, 2) + (21 / 112) * Power(e, 3) + (420 / 2304) * Power(e, 4);
ParamC = (3 / 80) * Power(e, 2) + (7 / 112) * Power(e, 3) + (180 / 2304) * Power(e, 4);
ParamD = (1 / 112) * Power(e, 3) + (45 / 2304) * Power(e, 4);
ParamE = (5 / 2304) * Power(e, 4);
参数初始化结束
中央经线转换为弧度
CenterL = TransDegreeToArc(CenterL)
选定本初子午线为参考经线
StandardLat = 0
For 起始点 To 倒数第二点
由高斯坐标反解计算经纬度值
ComputeXYGeo (PntColl.Point(i).y, PntColl.Point(i).x, B, L, CenterL)
ComputeXYGeo (PntColl.Point(i + 1).y, PntColl.Point(i + 1).x, B1, L1, CenterL)
将经纬度转换为弧度值
B = B / RHO
L = L / RHO
第 [1] [2] [3] [4] [5] [6] 页 共[7]页
|