参考: https://blog.csdn.net/kingcrab0710/article/details/117083106
头文件
#ifndef CCOORCONV_H
#define CCOORCONV_H
// #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 1
#include <iostream>
#include <iomanip>
#include <proj.h>
typedef struct _UTMCorr
{
double x;
double y;
}UTMCorr;
typedef struct _WGS84Corr
{
double log;
double lat;
}WGS84Corr;
class CCoorConv
{
private:
PJ_CONTEXT *mContext = nullptr;
PJ *mProj = nullptr;
PJ_COORD coordA;
PJ_COORD coordB;
int m_nUTMZone; //utm带号
bool m_bNorth; //是否为北半球
bool UpdatePJ(const WGS84Corr& wgs);
public:
CCoorConv();
~CCoorConv();
//wgs84 -> utm
bool LatLonToUTMXY(const WGS84Corr wgs, UTMCorr& utm);
//utm -> wgs84
bool UTMXYToLatLon(const UTMCorr utm, WGS84Corr& wgs);
};
#endif
源文件
#include "coorconv.h"
#include <iostream>
#include <string>
using namespace std;
CCoorConv::CCoorConv():
m_nUTMZone(-10000), m_bNorth