当前位置:文档之家› 高斯投影正反算c代码

高斯投影正反算c代码

高斯投影正反算c代码 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】
高斯投影正反算程序设计
一.程序设计流程
本程序的设计思路如下:
(1),程序采用VS08版本作为开发平台,并采用C#语言作为开发语言,设计为WindowsForm窗体程序形式。

(2),程序主要的算法来自于教材。

但是本程序为了更加实用,添加了更多的解算基准,包括:WGS-84,国际椭球1975,克氏椭球,和2000国家大地坐标系。

(3),程序为了更方便的读取数据和输出数据,故需要自己定义了固定的数据输入格式和数据输出格式或形式,请老师注意查看。

二.代码
using System;
using ;
using ;
using ;
using ;
using Gauss
{
public partial class Form1 : Form
{
double b = (a * a * (1 - ee * ee));
double c = a * a / b;
double epp = ((a * a - b * b) / b / b);
CRDGEODETIC pcrdGeo;
CRDCARTESIAN pcrdCar;
double midlong = 0;
//求X,Y和带号
= ;
ytext = ;
string temp = (0, 2);
num = (temp);
ytext = (0, 2);
= (ytext) - 500000;
try
{
tt = }
catch
{
("Choose 3/6 error!");
return;
}
if ("3度带") == 0)
{
midlong = num * 3 * pai / 180;
}
if ("6度带") == 0)
{
midlong = (6 * num - 3) * pai / 180; }
b = (a * a * (1 - ee * ee));
c = a * a / b;
epp = (a * a - b * b) / b;
double m0, m2, m4, m6, m8;
double a0, a2, a4, a6, a8;
m0 = a * (1 - ee * ee);
m2 = / * m0 * ee * ee;
m4 = / * ee * ee * m2;
m6 = / * ee * ee * m4;
m8 = / * ee * ee * m6;
a0 = m0 + m2 / + / * m4 + / * m6 + / * m8;
a2 = m2 / 2 + m4 / 2 + / * m6 + / * m8;
a4 = m4 / + / * m6 + / * m8;
a6 = m6 / + m8 / ;
a8 = m8 / ;
double Bf, B;
Bf = / a0;
B = ;
while (Bf - B) > 1E-10)
{
B = Bf;
double sb = (B);
double cb = (B);
double s2b = sb * cb * 2;
double s4b = s2b * (1 - 2 * sb * sb) * 2;
double s6b = s2b * (1 - s4b * s4b) + s4b * (1 - s2b * s2b); Bf = - (-a2 / * s2b + a4 / * s4b - a6 / * s6b)) / a0; }
double itaf, tf, Vf, Nf;
itaf = epp * (Bf);
tf = (Bf);
Vf = (1 + epp * epp * (Bf) * (Bf));
Nf = c / Vf;
double ynf = / Nf;
= Bf - / * Vf * Vf * tf * (ynf * ynf - / * (ynf, 4) * (5 + 3 * tf * tf + itaf * itaf - 9 * (itaf * tf, 2)) +
/ * (61 + 90 * tf * tf + 45 * (tf, 4)) * (ynf, 6));
= (ynf / (Bf) - (1 + 2 * tf * tf + itaf * itaf) * (ynf, 3) / / (Bf) +
(5 + 28 * tf * tf + 24 * (tf, 4) + 6 * itaf * itaf + 8 * (itaf * tf, 2)) * (ynf, 5) / / (Bf));
= + midlong;
// = ;
= "Results:\nLatitude: " + + "\nLongtitude: " + ;
}
private void label13_Click(object sender, EventArgs e)
{
}
}
}
三.程序运行结果分析
通过选取书上的具体实例进行测试,本程序的精度大体满足要求,一般正算的精度在米和米之间,反算的精度在秒左右。

以下是程序运行的截图。

相关主题