|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: Projection.cpp
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// ͶӰת<D3B0><D7AA>
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2008-11-09
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if !defined(AFX_PROJECTION_H__599FB19F_4D86_44E5_925E_D403A83DDAF5__INCLUDED_)
|
|
|
|
|
|
#define AFX_PROJECTION_H__599FB19F_4D86_44E5_925E_D403A83DDAF5__INCLUDED_
|
|
|
|
|
|
|
|
|
|
|
|
#include "Ellipsoid.h" // Added by ClassView
|
|
|
|
|
|
#include "ProjectionParameter.h" // Added by ClassView
|
|
|
|
|
|
#include "ConformalConic.h"
|
|
|
|
|
|
|
|
|
|
|
|
#if _MSC_VER > 1000
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#endif // _MSC_VER > 1000
|
|
|
|
|
|
|
|
|
|
|
|
#define _AREA_NORTH_LATITUDE 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>γ
|
|
|
|
|
|
#define _AREA_SOUTH_LATITUDE 1 //<2F>ϰ<EFBFBD><CFB0><EFBFBD> <09><>γ
|
|
|
|
|
|
#define _AREA_EAST_LONGITUDE 0 //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define _AREA_WEST_LONGITUDE 1 //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CProjection
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CProjection();
|
|
|
|
|
|
virtual ~CProjection();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CProjection& operator =(CProjection &p);
|
|
|
|
|
|
BOOL Initial(CString projection_file); //<2F>ڳ<EFBFBD>ʼ<EFBFBD><CABC>֮ǰ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롢<EFBFBD><EBA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL Initial(double m_a,double m_f); //<2F><><EFBFBD><EFBFBD><EFBFBD>ᡢ<EFBFBD><E1A1A2>ƽ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|
|
|
|
|
void CreateDefaultProjection(CString file); //<2F><><EFBFBD><EFBFBD>ȱʡ<C8B1><CAA1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
BOOL SetInBasesOut(int coor=_XY_BL_BL, int unit=_XY_BL_DMS);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>γ<EFBFBD><CEB3>
|
|
|
|
|
|
BOOL SetOutBasesIn(int coor=_XY_BL_BL, int unit=_XY_BL_DMS);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>γ<EFBFBD><CEB3>
|
|
|
|
|
|
BOOL SetArgv(const CString ArgvIn, const CString ArgvOut);
|
|
|
|
|
|
BOOL SetOutArgv(const CString ArgvOut); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL SetInArgv(const CString ArgvIn); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString GetOutArgv();
|
|
|
|
|
|
CString GetInArgv();
|
|
|
|
|
|
|
|
|
|
|
|
int Exchange(CString m_input,CString m_output,const char *mode="wt");
|
|
|
|
|
|
int Exchange(char *line);
|
|
|
|
|
|
int Exchange(double *xx, int num);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SetProgressPos(double dPos);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void ExchangeToOtherBL(CEllipsoid* pIn, CEllipsoid* pOut, double *xx);
|
|
|
|
|
|
void ExchangeToOtherXYZ(CEllipsoid* pEllipsoid, double *xx);
|
|
|
|
|
|
void ExchangeCustomBL(double *xx);
|
|
|
|
|
|
void ExchangeCustomXY(double *xx);
|
|
|
|
|
|
void ExchangeXY(double *xx);
|
|
|
|
|
|
void ExchangeBL(double *xx);
|
|
|
|
|
|
void Exchange(double *xx);
|
|
|
|
|
|
int Exchange(char *line, double *xx);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void ExchangeOldToNew(double *xx);
|
|
|
|
|
|
void ExchangeToOther(double *xx);
|
|
|
|
|
|
void SetDecimalDigits(int n);
|
|
|
|
|
|
|
|
|
|
|
|
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CProjectionLambert m_ConformalConic_in, m_ConformalConic_out;
|
|
|
|
|
|
CProjectionGaussKruger m_in, m_out;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
CProjectionParameter xy_in, xy_out;
|
|
|
|
|
|
int m_latitude; //<2F><>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>γ
|
|
|
|
|
|
int m_longitude; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>, <20><>γ/<2F><>γ
|
|
|
|
|
|
void SetEarch(int longitudeSel, int latitudeSel);
|
|
|
|
|
|
void GetEarch(int &longitudeSel, int &latitudeSel);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, short ver);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
int decimal_digits;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // !defined(AFX_PROJECTION_H__599FB19F_4D86_44E5_925E_D403A83DDAF5__INCLUDED_)
|