资源简介
本压缩包包含白塞尔大地主题解算的界面EXE应用程序和详细代码,计算精度高,还有使用手册。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Solution_of_geodetic_problem
{
//白塞尔的算法
class Bessel
{ /*********************************************
* 正算方法
* 形参为椭球选择标数、正算起算数据
* 返回值为需求算数据的数组
* ******************************************/
public double[] Forward_calculate(int ellipsoid_choose double B1 double L1 double A1 double S)
{
//选择椭球参数(ellipsoid为椭球标志)
double b = 0;
double e1 = 0;
double e2 = 0;
if (ellipsoid_choose == 1)
{
b = 6356863.0187730473;
e1 = 0.006693421622966;
e2 = 0.006738525414683;
}
else if (ellipsoid_choose == 2)
{
b = 6356755.2881575287;
e1 = 0.006694384999588;
e2 = 0.006739501819473;
}
else if (ellipsoid_choose == 3)
{
b = 6356752.3142;
e1 = 0.00669437999013;
e2 = 0.00673949674227;
}
//计算起点的规划纬度
double W1 = Math.Sqrt(1 - e1 * Math.Sin(B1) * Math.Sin(B1));
double sinu1 = Math.Sin(B1) * Math.Sqrt(1 - e1) / W1;
double cosu1 = Math.Cos(B1) / W1;
//计算辅助函数值
double sinAo = cosu1 * Math.Sin(A1);
double cota1 = cosu1 * Math.Cos(A1) / sinu1;
double sin2sgm1 = 2 * cota1 / (cota1 * cota1 + 1);
double cos2sgm1 = (cota1 * cota1 - 1) / (cota1 * cota1 + 1);
double cosAo_2 = 1 - sinAo * sinAo;
double k2 = e2 * cosAo_2;
double k4 = k2 * k2;
double k6 = k2 * k2 * k2;
//计算系数A、B、C以及alf、beita;这里可能存在精度问题
double A = b * (1 + k2 / 4 - 3 * k4 / 64 + 5 * k6 / 256);
double B = b * (k2 / 8 - k4 / 32 + 15 * k6 / 1024);
double C = b * (k4 / 128 - 3 * k6 / 512);
double alf = (e1 / 2 + e1 * e1 / 8 + e1 * e1 * e1 / 16)
- (e1 * e1 / 16 + e1 * e1 * e1 / 16) * cosAo_2
+ (3 * e1 * e1 * e1 / 128) * cosAo_2 * cosAo_2;
double bta = (e1 * e1 / 32 + e1 * e1 * e1 / 32) * cosAo_2
- (e1 * e1 * e1 / 64) * cosAo_2 * cosAo_2;
//计算球面长度
double sgm0 = (S - (B + C * cos2sgm1) * sin2sgm1) / A;
double sin2sgm1_sgm0 = sin2sgm1 * Math.Cos(2 * sgm0) + cos2sgm1 * Math.Sin(2 * sgm0);
double cos2sgm1_sgm0 = cos2sgm1 * Math.Cos(2 * sgm0) - sin2sgm1 * Math.Sin(2 * sgm0);
double sgm = sgm0 + (B + 5 * C * cos2sgm1_sgm0) * sin2sgm1_sgm0 / A;
//计算经差改正数
double dlta = (alf * sgm + bta * (sin2sgm1_sgm0 - sin2sgm1)) * sinAo;
//计算终点大地坐标以及大地方位角
double sinu2 = sinu1 * Math.Cos(sgm) + cosu1 * Math.Cos(A1) * Math.Sin(sgm);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\
文件 10038 2017-10-22 17:58 Solution_of_geodetic_problem\Bessel.cs
文件 45168 2017-10-22 18:58 Solution_of_geodetic_problem\Form1.Designer.cs
文件 6274 2017-10-22 18:58 Solution_of_geodetic_problem\Form1.cs
文件 5817 2017-10-22 18:58 Solution_of_geodetic_problem\Form1.resx
文件 509 2017-10-22 15:55 Solution_of_geodetic_problem\Program.cs
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\Properties\
文件 1388 2017-10-22 15:55 Solution_of_geodetic_problem\Properties\AssemblyInfo.cs
文件 2908 2017-10-22 15:55 Solution_of_geodetic_problem\Properties\Resources.Designer.cs
文件 5612 2017-10-22 15:55 Solution_of_geodetic_problem\Properties\Resources.resx
文件 1115 2017-10-22 15:55 Solution_of_geodetic_problem\Properties\Settings.Designer.cs
文件 249 2017-10-22 15:55 Solution_of_geodetic_problem\Properties\Settings.settings
文件 3792 2017-10-22 19:03 Solution_of_geodetic_problem\Solution_of_geodetic_problem.csproj
文件 897 2017-10-22 15:55 Solution_of_geodetic_problem\Solution_of_geodetic_problem.sln
文件 29184 2017-12-18 23:43 Solution_of_geodetic_problem\Solution_of_geodetic_problem.suo
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\bin\
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\bin\Debug\
文件 28160 2017-12-24 23:52 Solution_of_geodetic_problem\bin\Debug\Solution_of_geodetic_problem.exe
文件 42496 2017-12-24 23:52 Solution_of_geodetic_problem\bin\Debug\Solution_of_geodetic_problem.pdb
文件 11600 2017-12-24 23:49 Solution_of_geodetic_problem\bin\Debug\Solution_of_geodetic_problem.vshost.exe
文件 490 2016-07-16 19:44 Solution_of_geodetic_problem\bin\Debug\Solution_of_geodetic_problem.vshost.exe.manifest
目录 0 2017-12-27 20:40 Solution_of_geodetic_problem\bin\Release\
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\obj\
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\obj\x86\
目录 0 2017-12-25 00:22 Solution_of_geodetic_problem\obj\x86\Debug\
文件 5420 2017-11-04 17:18 Solution_of_geodetic_problem\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6314 2017-12-24 23:52 Solution_of_geodetic_problem\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 180 2017-12-18 23:34 Solution_of_geodetic_problem\obj\x86\Debug\Solution_of_geodetic_problem.Form1.resources
文件 180 2017-12-18 23:34 Solution_of_geodetic_problem\obj\x86\Debug\Solution_of_geodetic_problem.Properties.Resources.resources
文件 810 2017-12-24 23:49 Solution_of_geodetic_problem\obj\x86\Debug\Solution_of_geodetic_problem.csproj.FileListAbsolute.txt
文件 975 2017-10-22 18:58 Solution_of_geodetic_problem\obj\x86\Debug\Solution_of_geodetic_problem.csproj.GenerateResource.Cache
............此处省略6个文件信息
评论
共有 条评论