You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.0 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//类: CEllipsoidItem
//主要功能:
// 对投影参数文件进行读写操作
//
//程序编写: 2008-6-18
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "ConversionParameter.h"
#include "afxtempl.h"
namespace NProjectionParameterFile
{
class AFX_EXT_CLASS CEllipsoidItem
{
public:
CEllipsoidItem(void);
~CEllipsoidItem(void);
public:
int ReadIni(CString strName, CString strIniFile);
void WriteIni(CString strIniFile);
void operator=(CEllipsoidItem& item);
bool operator==(CEllipsoidItem& item);
void Init();
double a; //长半轴
double f; //扁平率倒数
CString append;
CString date;
CString name;
//CString token;
double b(void); //获得短半轴
static double GetF(double aa, double bb); //根据长短半轴获得f
};
class AFX_EXT_CLASS CConversionItem : public CConversionParameter
{
public:
CConversionItem();
void operator=(CConversionItem& item);
CString m_strName;
CString m_strComment;
CString m_strInEllipsoidName;
CString m_strOutEllipsoidName;
void Init(void);
};
class AFX_EXT_CLASS CEllipsoidFile
{
public:
CEllipsoidFile(void);
~CEllipsoidFile(void);
int Read(LPCTSTR lpszFileName);
void Write(LPCTSTR lpszFileName);
CString Find(double a, double b, CString strIncludeContent); //根据长短半轴查找与其相对应的椭球体
POSITION FindFlat(double a, double f, CString strIncludeContent); //根据长短半轴查找与其相对应的椭球体
POSITION FindEquation(LPCTSTR lpszName); //查找相同
CEllipsoidItem& GetEllipsoidAt(POSITION pos);
CEllipsoidItem FindSimilarAt(LPCTSTR lpszName); //查找相似或相同
//POSITION FindToken(LPCTSTR lpszName); //查找相同
//int ReadSurferEllipsoidFile(LPCTSTR lpszFileName);
//int ReadSurferDatumFile(LPCTSTR lpszFileName);
public:
CList<CEllipsoidItem, CEllipsoidItem> m_listEllipsoid;
CList<CConversionItem, CConversionItem> m_listConversion;
protected:
BOOL WriteEllipsoid(LPCTSTR lpszFileName);
void WriteConversionItem(LPCTSTR lpszFileName);
};
};
using namespace NProjectionParameterFile;