Cálculo inverso de la proyección gaussiana
/////Sistema de coordenadas de Beijing de 54 años de ancho de banda de 6 grados
//La proyección gaussiana calcula las coordenadas geodésicas (unidad: DD) desde longitud y latitud (unidad: DD) Incluyendo número de banda, unidad: metro).
void GaussProjCal(doble longitud, doble latitud, doble X, doble Y)
{
int ProjNo = 0; int area range; Ancho de banda
Doble longitud 1, latitud 1, longitud 0, latitud 0, x0, y0, xval, yval
Doble A, f, e2, ee, NN, T, C, A, M, iPI
iPI = 0.0174532925199433; ////3.1415926535898/180.0;
Ancho de región = 6; ////6 grados de ancho de banda
a = 6378245.0f = 1.0/298.3; //Parámetros del sistema de coordenadas de Beijing en 1954
////a = 6378140.0; f = 1/298.257; //Parámetros del sistema de coordenadas de Xi'an en 1980 p >
ProjNo = (int)(longitud/rango de área);
longitud 0 = ProjNo * zona amplia+zona amplia/2;
longitud0 = longitud0 * iPI< / p>
Latitud 0 = 0;
Longitud 1 = longitud * iPI // Longitud convertida a radianes.
latitud1 = latitud * iPI // Latitud convertida a radianes
E2 = 2 * f-f * f
ee = E2 *(1.0-E2);
NN=a/sqrt(1.0-e2*sin(latitud 1)*sin(latitud 1));
T=tan(latitud 1)*tan(latitud 1) ;
C=ee*cos(latitud 1)*cos(latitud 1);
A=(longitud 1-longitud 0)*cos(latitud 1);
m = a *(1-E2/4-3 * E2 * E2/64-5 * E2 * E2 * E2/256)* latitud 1-(3 * E2/8+3 * E2 * E2/ 32+45 * E2 * E2
* E2/1024)* sin(2 *latitud 1)
+(15 * E2 * E2/256+45 * E2 * E2 * E2/1024)* sin(4*latitud 1)-(35*E2*E2*E2/3072)*sin(6*l
latitud 1));
XV al = NN *(A+(1-T+C)* A * A * A/6+(5-18 * T+T * T+72 * C-58 * ee)* A * A * A * A * A/120);
yval = M+NN * tan(latitud 1)*(A * A/2+(5-T+9 * C+4 * C * C)* A * A * A * A/24
+(61-58 * T+T * T+600 * C-330 * ee)* A * A * A * A * A * A * A/720) ;
x0 = 1000000 l *(ProjNo+1)+500000 l;
y0 = 0;
XV al = XV al+X0; yval+Y0;
* :metro) para calcular la latitud y longitud (unidad: DD).
Void Gaussprojectinvcal (doble x, doble y, doble * longitud, doble * latitud) Cadena 9.
{
int ProjNoint rango de área; ////Ancho de banda
Doble longitud 1, latitud 1, longitud 0, latitud 0, X0, Y0, xval , yval
doble e1, e2, f, a, e e, NN, T, C, M, D, R, u, fai, iPI
iPI = 0.0174532925199433; //3.1415926535898/180.0;
a = 6378245.0f = 1.0/298.3; //Parámetros del sistema de coordenadas de Beijing en 1954
////a = 6378140.0 f = 1/298.257; ; //Parámetros del sistema de coordenadas Xi'an de 80 años
Ancho de región = 6; ////ancho de banda de 6 grados
ProjNo = (int)(X/1000000 l); // Encuentra el número
longitud 0 =(ProjNo-1)* zona amplia+zona amplia/2;
longitud0 = longitud0 * iPI//meridiano central
x0 = ProjNo * 1000000 l+500000 l;
y0 = 0;
XV al = X-X0; yval = Y-Y0; // Coordenadas geodésicas dentro de la banda
E2 = 2 * f-f * f;
e 1 =(1.0-sqrt(1-E2))/(1.sqrt(1-E2));
ee = E2/(1-E2);
M = yval
u = M/(a *(1-E2/4-3 * E2 * E2/ 64-5 * E2 * E2 * E2/256));
fai = u+(3 * e 1/2-27 * e 1 * e 1 * e 1/32)* sin(2 * u)+ (21 * e 1/16-55 * e 1 * e 1 * e 1 * e 1/38
4*u)
+(151 * e 1 * e 1 * e 1/96)* sin(6 * u)+(1097 * e 1 * e 1 * e 1 * e 1 * e 1/512)* sin sin(8 * u);
c = ee * cos(fai)* cos(fai);
t = tan(fai)* tan(fai);
NN = a/sqrt(1.0 -E2 * sin(fai)* sin(fai)); cadena 1
r = a *(1-E2)/sqrt((1-E2 * sin(fai)* sin(fai)) *( 1-E2 * sin(fai)* sin(fai))*(1-E2 * sin
(fai)* sin(fai)));
d = XV al /NN;
//Calcular latitud y longitud.
Longitud 1 = Longitud (D-(1+2 * T+C)* D * D * D/6+(5-2 * C+28 * T-3 * C * C +8 * ee+24 * T * T)* D
* D * D * D * D/120)/cos(fai);
latitud 1 = fai-( NN * tan(fai)/R)*(D * D/2-(5+3 * T+10 * C-4 * C * C-9 * ee)* D * D * D * D/24 p>
+(61+90 * T+298 * C+45 * T * T-256 * ee-3 * C * C)* D * D * D * D * D * D/720);
//Convertir a DD
*Longitude=Longitude1/iPI;
*Latitud=Latitud1/iPI;
}
NNEl radio de curvatura del círculo unitario está representado por n en la medición.
m es la longitud del arco del meridiano. En la medición, la cuerda 2 está representada por una x grande.
Fai es la latitud del punto base, que se obtiene mediante la fórmula inversa de la longitud del arco del meridiano. En mediciones, Bf se utiliza para representar la cuerda 4.
r es el radio de curvatura del punto inferior, que en la medición está representado por Nf.