📄 jingweidu.h
字号:
//定义平面坐标,大地经纬度,地心经纬度,球面经纬度以及坐标之间的转化关系
//另外定义了符号函数,这样做是为了更方便查找
#ifndef JINGWEIDU
#define JINGWEIDU
#include<iostream.h>
#include "base.h"
#define pi 3.141592653589793
//平面坐标在高斯投影中用到
class pingmian
{
public:
long double x;
long double y;
pingmian(long double i,long double j)//输入角度
{
x=i;
y=j;
}
pingmian(const pingmian &ping)
{
x=ping.x;
y=ping.y;
}
pingmian operator=(const pingmian &ping)
{
x=ping.x;
y=ping.y;
return *this;
}
friend ostream&
operator<<(ostream & os,const pingmian &ping)
{
return os<<ping.x<<" "<<ping.y;
}
};
//定义大地经纬度
class dadijingweidu
{
public:
long double B;
long double L;
dadijingweidu(long double b=0,long double l=0)
{
B=b*pi/180;
L=l*pi/180;
}
dadijingweidu(base base1,base base2)
{
B=(base1.degree+base1.minite/60+base1.second/3600)*pi/180;
L=(base2.degree+base2.minite/60+base2.second/3600)*pi/180;
}
dadijingweidu(const dadijingweidu &da)
{
B=da.B;
L=da.L;
}
dadijingweidu operator=(const dadijingweidu &da)
{
B=da.B;
L=da.L;
return *this;
}
friend ostream&
operator<<(ostream & os,const dadijingweidu &da)
{
return os<<da.B*180/pi<<" "<<da.L*180/pi;
}
};
//在求大椭圆距离时用到地心经纬度,故定义之
class dixinjingweidu
{
public:
long double psi;
long double L;
dixinjingweidu(long double p=0,long double l=0)
{
psi=p*pi/180;
L=l*pi/180;
}
dixinjingweidu(const dixinjingweidu &di)
{
psi=di.psi;
L=di.L;
}
dixinjingweidu operator=(const dixinjingweidu &di)
{
psi=di.psi;
L=di.L;
return *this;
}
friend ostream&
operator<<(ostream & os,const dixinjingweidu &di)
{
return os<<di.psi*180/pi<<" "<<di.L*180/pi;
}
};
//在求概位时需要将大地坐标对应到辅助球面上,故定义如下
class qiumianjingweidu
{
public:
long double psi;
long double lambda;
qiumianjingweidu(long double p=0,long double l=0)
{
psi=p*pi/180;
lambda=l*pi/180;
}
qiumianjingweidu(const qiumianjingweidu &qiu)
{
psi=qiu.psi;
lambda=qiu.lambda;
}
qiumianjingweidu operator=(const qiumianjingweidu &qiu)
{
psi=qiu.psi;
lambda=qiu.lambda;
return *this;
}
friend ostream&
operator<<(ostream & os,const qiumianjingweidu &qiu)
{
return os<<qiu.psi*180/pi<<" "<<qiu.lambda*180/pi;
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -