RasterProcessTool/RasterMainWidgetGUI/RasterMainWidget/crs.h

56 lines
1.1 KiB
C++

#pragma once
#include <QRectF>
#include <QString>
#include <pointxy.h>
namespace LAMPMainWidget
{
class CRS
{
public:
CRS() = default;
virtual ~CRS() = default;
public:
/**
* 将wgs84的经纬度坐标装换为该坐标系坐标
* @param point 点坐标
* @return wgs84坐标
*/
virtual PointXY forward(const PointXY& point) const;
/**
* 将该坐标系坐标转换为wgs84的经纬度坐标
* @param point 点坐标
* @return wgs84坐标
*/
virtual PointXY inverse(const PointXY& point) const;
/**
* 返回该坐标系在proj4中的转换公式
* @return 转换公式的字符串
*/
virtual QString proj4Cvt() const = 0;
/**
* 返回该坐标系的wkt定义
* @return 坐标系的wkt定义字符串
*/
virtual QString wktDef() const = 0;
/**
* 返回该坐标系的proj4定义
* @return proj4的定义字符串
*/
virtual QString proj4Def() const = 0;
/**
* 返回该坐标系的整个投影大小
* @return 投影的整个大小
*/
virtual QRectF extent() const = 0;
};
}