高斯投影坐标正反算编程资料报告材料Word文档下载推荐.docx
- 文档编号:16109236
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:12
- 大小:59.85KB
高斯投影坐标正反算编程资料报告材料Word文档下载推荐.docx
《高斯投影坐标正反算编程资料报告材料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《高斯投影坐标正反算编程资料报告材料Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
/////主函数入口
GeodesyHomework.cpp
#include"
MyFunction.h"
Zhengsuan.h"
Fansuan.h"
#include<
iostream>
usingnamespacestd;
voidfansuan();
voidzhengsuan();
voidmain(){
zhengsuan();
fansuan();
printf("
/nover!
"
);
}
voidzhengsuan(){
doublemyB,myL;
cout<
<
【正算】"
endl;
请输入纬度B"
myB=angleToDegree();
请输入经度L"
myL=angleToDegree();
ZhengsuanmyZhengsuan1(myB,myL);
RadianB=%fL=%f\n"
myZhengsuan1.getrB(),myZhengsuan1.getrL());
myZhengsuan1.printLocation();
voidfansuan(){
doublemyX,myY;
【反算】"
请输入国家统一坐标XY。
例如3378627.181920243953.4517"
cin>
>
myX>
myY;
FansuanmyFansuan1(myX,myY);
myFansuan1.printLocation();
///自定功能函数库
MyFunction.h
#definePI3.1415926
doubleangleToDegree(intdu,intfen,floatmiao);
doubleangleToDegree();
//将度分秒换算为度
doubledegreeToRadian(doubledegree);
doubledegreeToRadian();
//将角度换算为弧度
MyFunction.cpp
doubleangleToDegree(intdu,intfen,floatmiao){
doubleresult=0;
result=miao/3600.0+fen/60.0+du;
returnresult;
doubleangleToDegree(){
intdu,fen;
floatmiao;
doubleresult;
请输入度分秒。
例如:
302000"
du>
fen>
miao;
result=angleToDegree(du,fen,miao);
doubledegreeToRadian(doubledegree){
result=degree/57.2321;
doubledegreeToRadian(){
doubleresult,degree;
degree=angleToDegree();
result=degreeToRadian(degree);
///正算类
Zhengsuan.h
//Zhengsuan.h:
interfacefortheZhengsuanclass.
//
//////////////////////////////////////////////////////////////////////
#if!
defined(AFX_ZHENGSUAN_H__2655EA28_E810_44A3_8F14_56421A7B4466__INCLUDED_)
#defineAFX_ZHENGSUAN_H__2655EA28_E810_44A3_8F14_56421A7B4466__INCLUDED_
#if_MSC_VER>
1000
#pragmaonce
#endif//_MSC_VER>
#definerouSecond206264.5
math.h>
classZhengsuan
{
public:
Zhengsuan();
Zhengsuan(doublefB,doublefL);
doublegetX();
doublegetY();
doublegetrB();
doublegetrL();
voidprintLocation();
virtual~Zhengsuan();
private:
doublex;
doubley;
//坐标
doubleX;
doubleY;
//国家统一坐标
doubleB;
doublerB;
intBsecond;
doubleL;
doublerL;
//输入的纬度B,经度L,rB,rL为对应弧度表示值,Bsecond为换算成秒数值
intn;
//带号n
doubleL0;
//中央经线纬度L0
doubleLDot;
//纬度差L-L0
intLDotSecond;
//换算成秒的纬度差
doublel;
doubleN;
doublea0;
doublea3;
doublea4;
doublea5;
doublea6;
//七个计算参数
};
#endif//!
Zhengsuan.cpp
//Zhengsuan.cpp:
implementationoftheZhengsuanclass.
//Construction/Destruction
Zhengsuan:
:
Zhengsuan()
Zhengsuan(doublefB,doublefL){
B=fB;
rB=degreeToRadian(fB);
L=fL;
rL=degreeToRadian(fL);
Bsecond=B*3600;
//初始化经度L,纬度B,Bsecond,按弧度的纬度rB
n=(int)(L/6+1);
//初始化带号n
L0=6*n-3;
//中央经线经度,角度单位
LDot=L-L0;
//经度差
LDotSecond=LDot*3600;
l=(LDot)*3600/rouSecond;
//计算参数l
N=6399698.902-(21562.267-(108.973-0.612*cos(rB)*cos(rB))*cos(rB)*cos(rB))*cos(rB)*cos(rB);
//计算参数N
a0=32140.404-(135.3302-(0.7092-0.004*cos(rB)*cos(rB))*cos(rB)*cos(rB))*cos(rB)*cos(rB);
//计算参数a0
a4=(0.25+0.00252*cos(rB)*cos(rB))*cos(rB)*cos(rB)-0.04166;
//计算参数a4
a6=(0.166*cos(rB)*cos(rB)-0.084)*cos(rB)*cos(rB);
//计算参数a6
a3=(0.3333333+0.001123*cos(rB)*cos(rB))*cos(rB)*cos(rB)-0.1666667;
//计算参数a3
a5=0.0083-(0.1667-(0.1968+0.004*cos(rB)*cos(rB))*cos(rB)*cos(rB))*cos(rB)*cos(rB);
//计算参数a5
x=6367558.4969*Bsecond/rouSecond-(a0-(0.5+(a4+a6*l*l)*l*l)*l*l*N)*sin(rB)*cos(rB);
//正算x
y=(1+(a3+a5*l*l)*l*l)*l*N*cos(rB);
//正算y
X=x;
Y=n*1000000+y+500000;
~Zhengsuan()
doubleZhengsuan:
getX(){
returnX;
getY(){
returnY;
voidZhengsuan:
printLocation(){
正算得国家统一坐标为:
X=%8.8fY=%8.8f\n"
X,Y);
getrB(){
returnrB;
getrL(){
returnrL;
///反算类
Fansuan.h
//Fansuan.h:
interfacefortheFansuanclass.
//////////////////
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 投影 坐标 正反 编程 资料 报告 材料
![提示](https://static.bdocx.com/images/bang_tan.gif)