📄 survey.h
字号:
// Survey.h: interface for the CSurvey class.
/*/////////////////////////////////////////////////////////////////////////////
本类用以处理工程测量中测量计算,如测量坐标换代、计算高斯坐标计算经纬度、经纬度
计算高斯平面坐标等工程测量中的应用。
*/
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SURVEY_H__7B545141_C81D_11D5_AA63_0000E86D0FFA__INCLUDED_)
#define AFX_SURVEY_H__7B545141_C81D_11D5_AA63_0000E86D0FFA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct typePoint
{
double x;
double y;
};
class CSurvey
{
public:
CSurvey();
virtual ~CSurvey();
public:
typePoint point54[4];
//struct point point54[4];
double pi;
double cs_a, cs_b, cs_f, cs_E, cs_e1, cs_e2; //系统参数
double dsetx,dsety; //设置坐标 dsetx小数7位,dsety大数8位 注意:在做计算时要将坐标的代号去掉
double dgetx,dgety; //转换坐标
double dgetbl_b,dgetbl_l; //该坐标的经纬度 dgetbl_b纬度,dgetbl_l经度
double dgetsd;
double dthwith,dthlengh; //分幅的长和宽 df,db
int dmerl,fdh; //中央子午线,代号
int dmeil_last,fdh_last; //转换后的中央子午线,代号
int dudai; //3度带或6度带
CString eltf1,eltf2,eltf3,eltf4,eltf5,eltf6,eltf7,eltf8; //图号的八邻图号
CString SetBLC; //计算图幅比例尺
public:
void GetSysDat(int sel/*1代表54系;2代表80系;3代表GPS 72系*/); //设置系统参数
BOOL GetFdh(); //根据Y坐标计算中央子午线和代号
double Blength(double xx);
double Calb(double b, double a0, double a1, double a2, double a3);
CString DMS(double datab); //将度转换成度分秒
double Deg(double datab); //将度分秒数据转换成度
double Rmax(double datab);
double Slength(double jwd);
BOOL XyToBl(); //大地坐标计算地理坐标 dsetx为大数,dsety为小数
BOOL BlToXy(); //地理坐标计算大地坐标 dgetbl_b为经度,dgetbl_l为纬度
void GetReduceNewth(CString strnewtf,char* top,int* jw,char* sc,int* row,int* col);//分解新图号
CString GetOldThFormNewTh(CString strnewtf); //利用新图号计算旧图号
CString GetBLCFormOldMap(CString stroldmap); //利用旧图号获得比例尺
CString GetNewtfFormOldtf(CString stroldtf); //利用旧图号计算新图号
void SetStandardBLC(int BLC,double* db,double* df); //利用比例尺确定分幅的经差和纬差
void CalLngLat(CString strnewtf,double* f1,double* b1); //根据新图号计算经纬度。
void SetNewTfCalLL(CString strnewtf,double* Sb,double* Wl,double* Nb,double* El);//根据新图号计算经纬度。
void BCalMeri(double jdB,double jdmin,int daihao,double* reMeri,double* redh); //计算中央子午线
CString GetThCalLat(double jd,double wd,int sel/*1为50万;2为25万*/); //利用经纬度计算50万和25万图号
CString GetThCalLatEF(double jd,double wd,int sel/*4为5万;5为2.5万*/); //5万和2.5万
CString GetThCalLatADGH(double jd,double wd,int sel/*0 100w,3 10w,6 1w,7 5千*/); //100万、10万、1万、5千
BOOL GeteightThao(CString strtf); //根据图号计算八邻图号'旧图号'
BOOL TransTwoContrlXy(typePoint old1,typePoint old2,typePoint new1,typePoint new2,
double* s1,double* s2,double* s3,double* s4); //自由坐标系转换坐标参数
void TransXy(typePoint oldpoint,typePoint* newpoint,
double s1,double s2,double s3,double s4); //坐标转换
BOOL CalLineCut(struct typePoint point1,struct typePoint point2,double GridData,double* GetData,bool bfxy); //计算直线的交点
void ExportKilometreGrid(CString filename,CString tkcode,CString lcode); //输出公里格网E00文件
int ExData(double data,double* data1); //确定数据大小
BOOL GetMaxMinData(double* minx,double* miny,double* maxx,double* maxy); //四坐标中的最大与最小
void ExportKilometreGridMapInof(CString filename,CString tkcode,CString lcode); //输出公里格网Mapinfo文件MIF格式
void ExportKilometreGridAml(CString filename); //输出公里格网生成Aml文件
void ExportTicaml(CString filename);
};
#endif // !defined(AFX_SURVEY_H__7B545141_C81D_11D5_AA63_0000E86D0FFA__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -