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++
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; |