首先,你要确定椭球参数:
a = 6378140; //西安80椭球 IGA75 e2 = 0.006694384999588; m0 = a * (1 - e2); m2 = 3.0 / 2 * e2 * m0; m4 = 5.0 / 4 * e2 * m2; m6 = 7.0 / 6 * e2 * m4; m8 = 9.0 / 8 * e2 * m6; a0 = m0 + m2 / 2 + (3.0 / 8.0) * m4 + (5.0 / 16.0) * m6 + (35.0 / 128.0) * m8; a2 = m2 / 2 + m4 / 2 + 15.0 / 32 * m6 + 7.0 / 16 * m8; a4 = m4 / 8 + 3.0 / 16 * m6 + 7.0 / 32 * m8; a6 = m6 / 32 + m8 / 16; a8 = m8 / 128; xx = 0; yy = 0; _x = 0; _y = 0; BB = 0; LL = 0;
下面才开始正题:
高斯正算:把经纬度坐标转换为平面坐标
void GaussPositive(double B, double L, double L0) { double X, t, N, h2, l, m, Bmiao, Lmiao; int Bdu, Bfen, Ldu, Lfen; Bdu = (int)B; Bfen = (int)(B * 100) % 100; Bmiao = (B - Bdu - Bfen * 0.01) * 10000.0; B