高斯坐标的正算:

坐标反算:

代码:

//高斯坐标的正反算
#include<iostream>
#include<cmath>
#define PI 3.1415
using namespace std;
//正算 x=3380330.773 y=320089.9761
//B=30° 30′ L=114°20′
void zhensuan()
{double d, f, m;cout << "输入B(°′″): " << endl;cin >> d >> f >> m;double dl, fl, ml;cout << "输入L(°′″): " << endl;cin >> dl >> fl >> ml;double _b = d + f / 60 + m / 3600;double B = (PI/180)*(_b);//角度要变为弧度 PI/180*Bdouble L = dl + fl / 60 + ml / 3600;double c = 6399698.9017827110;double e = 0.006738525414683;//e"^2double m_e = 0.006693421622966;//e^2double V = sqrt(1 + e * cos(B)*cos(B));//v=根号下1+e'^2*cosB*cos(B)double p = 206264.806247096355;//p"double t = tan(B);double n = e * cos(B) * cos(B);//n^2double n6;if ((int)L % 6 == 0) {n6 = floor(L / 6) ;//按6度带划分 }else n6 = floor(L / 6)+1;double lm = n6 * 6 - 3;//中央子午线度数double l = fabs(L - lm)*3600;//l"以秒为单位 经差(p点经度和中央子午线之差)double a = 6378245;//单位mdouble b = 6356863.02;//单位mdouble m_p = 1 / p;//p的倒数double N = c / V;//先求Xdouble m1 = N * cos(B);double m2 = (N / 2) * sin(B) * cos(B);double m3 = (N / 6)* cos(B) * cos(B) * cos(B) * (1 - t * t + n );double m4 = (N / 24) * sin(B) * cos(B) * cos(B) * cos(B) * (5 - t * t + 9 * n  + 4 * n * n);double m5 = (N / 120) * cos(B) * cos(B) * cos(B) * cos(B) * cos(B) * (5 - 18 * t * t + t * t * t * t + 14 * n  - 58 * n  * t * t);double m6 = (N / 720) * sin(B) * cos(B) * cos(B) * cos(B) * cos(B) * cos(B) * (61 - 58 * t * t + t * t * t * t);double X = 111134.861 * (_b)-32005.780 * sin(B) * cos(B) - 133.929 * sin(B) * sin(B) * sin(B) * cos(B) - 0.698 * sin(B) * sin(B) * sin(B) * sin(B) * sin(B)*cos(B);//_b是度数哦double x = X + (m2 * m_p * m_p * l * l) + (m4 * m_p * m_p * m_p * m_p * l * l * l * l) + (m6 * m_p * m_p * m_p * m_p * m_p * m_p * l * l * l * l * l * l);double y = (N / p) * cos(B) * l + (N / (6 * p * p*p)) * cos(B) * cos(B) * cos(B) * (1 - t * t + n ) * l * l * l + (N / (120 * p * p * p * p * p)) * cos(B) * cos(B) * cos(B) * cos(B) * cos(B) * (5 - 18 * t * t + t * t * t * t + 14 * n - 58 * n  * t * t) * l * l * l * l * l;//输出cout << "正算结果:" << endl;cout << "x= " << x << endl;cout << "y= " << y << endl;
}//坐标反算 x=3380330.773 y=320089.9761
//B=30° 30′ L=114°20′
//由x,y求B,L
void fansuan()
{cout << "输入坐标x,y:  " << endl;double x, y;cin >> x >> y;//迭代解法计算底点纬度double p = x / 6367588.4969;//弧度double Bd = p + (50221746 + (293622 + (2350 + 22 * cos(p) * cos(p)) * cos(p)) * cos(p)) * (1e-10) * sin(p) * cos(p);//底点坐标double c = 6399698.9017827110;double e = 0.006738525414683;//e"^2double m_e = 0.006693421622966;//e^2double Vd = sqrt(1 + e * cos(Bd));//v=根号下1+e'^2*cosBdouble td = tan(Bd);double nd = e * cos(Bd) * cos(Bd);double Nd = c / Vd;double Md = c / (Vd * Vd * Vd);double n1 = 1 / (Nd * cos(Bd));double n2 = (td / (2 * Md * Nd));double n3 = (1 + 2 * td * td + nd * nd) / (6 * Nd * Nd * Nd * cos(Bd));double n4 = (td * (5 + 3 * td * td + nd * nd - 9 * nd * nd * td * td)) / (24 * Md * Nd * Nd * Nd);double n5 = (5 + 28 * td * td + 24 * td * td * td * td + 6 * nd * nd + 8 * nd * nd * td * td) / (120 * Nd * Nd * Nd * Nd * Nd * cos(Bd));double n6 = (td * (61 + 90 * td * td + 45 * td * td * td * td)) / (720 * Md * Nd * Nd * Nd * Nd * Nd);double B = Bd - n2 * y * y + n4 * y * y * y * y-n6* y * y * y * y*y * y;double L = n1 * y - n3 * y * y * y + n5 * y * y * y * y * y;cout << "B= " << B << endl;//按弧度计算cout << "L= " << L << endl;cout << "转换成角度后:B=" << (180 / PI) * B << endl;cout << "转换成角度后:L= " << (180 / PI) * L << endl;//这里是经差,因为高斯坐标和国家统一坐标不同,不知其带号
}
int main() {//克拉索夫斯基椭球//a=6378245m b=6356863.0187730473m//c=6399698.9017827110m  a=1/298.3//e^2=0.006693421622966  e'^2=0.006738525414683zhensuan();fansuan();
}

不难,就是得找公式,哎。。。。

C++实现高斯坐标的正反算相关推荐

  1. 立交匝道中边桩坐标放样正反算程序RAMP

    立交匝道中边桩坐标放样正反算程序RAMP(0911改进版) . 正在上传-重新上传取消 正在上传-重新上传取消 . 2.子程序1:RAMP-ZBJS 功能:使用Gauss-Legendre积分公式(四 ...

  2. 卡西欧计算机算坐标步骤,卡西欧计算器坐标的正反算.doc

    卡西欧计算器坐标的正反算 线路中边桩任意里程坐标正.反算改编程序(CASIO fx-4800)可以算任意斜交涵洞轴线的坐标,增加T为斜交角度,规定T为涵轴右侧方向与"线路前进方向切线&quo ...

  3. 坐标反算c语言程序,道路坐标正反算无限个拐点计算器测量程序(新20070825)

    <道路坐标正反算无限个拐点计算器测量程序(新20070825)>由会员分享,可在线阅读,更多相关<道路坐标正反算无限个拐点计算器测量程序(新20070825)(10页珍藏版)> ...

  4. 曲线任意里程中边桩坐标正反算(CASIO fx-4850P计算器)程序第四次修改版

    曲线任意里程中边桩坐标正反算(4850P计算器)程序(第四次修改版) 曲线任意里程中边桩坐标正反算(CASIO fx-4850P计算器)程序 ( 第四次修改版 ) 一.程序功能及原理 1.功能说明:本 ...

  5. 曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

    有个4800线元法程序,改成5800后,运行后计算某点1的坐标不对,再次运行同样计算该点的坐标,又是对的了,同样计算某点2仍是第二次才能算对,谁能知道怎么回事? 下面是该4800程序      曲线任 ...

  6. matlab高斯正反算程序6,基于matlab的高斯投影正反算与相邻带坐标换算程序设计...

    第 卷 第 期 在 月 中 国 水 运 基于 的高斯投影正反算与相邻带坐标换 算程 序设计 徐 翰 ,周 强 波 (核 工 业 二 三 研 究所 ,湖 南 长 沙 ) 摘 要 :地 图投影方法众多 , ...

  7. 高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)

            本文意在介绍高斯正反算的基本原理和代码实现!针对高斯正反算网上给出的方法很多,但是我试了之后发现多少都有些问题:或公式原理问题.或精度问题!         通过查找资料对其进行了总结 ...

  8. 高斯坐标正反算c语言,高斯投影坐标正反算编程报告

    <高斯投影坐标正反算编程报告>由会员分享,可在线阅读,更多相关<高斯投影坐标正反算编程报告(11页珍藏版)>请在人人文库网上搜索. 1.高斯投影坐标正反算编程报告1. 编程思想 ...

  9. 高斯投影坐标正反算公式

    §8.3高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的:②如果是正形投影,除了满足正形投影的条件外(C-R偏微分方程),还有它本身的特殊条件. 8.3.1高斯投影坐标正算公式:  高斯投 ...

最新文章

  1. mysql cte 表不存在_使用CTE解决复杂查询的问题_MySQL
  2. 利用Math.random做背景图像随机切换【前端开发技能必备系列】
  3. wget在linux中安装出现错误解决办法
  4. Nginx (LNMP+https)
  5. 势头迅猛的儿童手表:恐陷下一个文曲星之地?
  6. JQueryDOM之创建节点
  7. idea lib下有jar包但是仍然报错 找不到类
  8. SpringMVC核心
  9. KVM 001 -- 简介及安装
  10. flowable实现多实例节点的自由跳转
  11. 发那可g10_fanuc系统中的G10
  12. css让全局字体为微软雅黑,wordpress主题通过自定义CSS实现全局更换微软雅黑字体...
  13. 升级wireshark支持openflow13抓包
  14. 随心而行----我与计算机的缘分
  15. 修复未能连接一个window服务器,未能连接一个windows服务的修复方法
  16. Vue3.0的新特性(8)Suspense
  17. 京东笔试编程题之方块消除
  18. 幼儿园教师计算机运用论文,幼儿园信息化论文范文
  19. PPC r0-r31寄存器介绍
  20. MBA案例分析(行销与营销之营销三)

热门文章

  1. Oracle提高命中率及优化
  2. 《江山美人》:程小东的利落与编剧群的故步自封
  3. 如何在APP中集成Google账户登录
  4. linux 修改系统时间和日期,Linux 修改系统日期和时间
  5. TensorFlow keras数据集本地下载路径
  6. 将网页添加至收藏夹代码
  7. csgo搭建显示段位的服务器,csgo官匹隐藏分怎么看 官匹段位升级机制
  8. 基金直销账户体系介绍
  9. 搭建客服知识库,轻松解决售后服务问题
  10. 中文***测试专用Linux系统—MagicBox(魔方系统)