97 lines
2.0 KiB
C++
97 lines
2.0 KiB
C++
/**
|
||
* @file RasterProjectBase.h
|
||
* @brief None
|
||
* @author 陈增辉 (3045316072@qq.com)
|
||
* @version 2.5.0
|
||
* @date 24-6-4
|
||
* @copyright Copyright (c) Since 2024 中科卫星应用研究院 All rights reserved.
|
||
*/
|
||
|
||
#ifndef LAMPCAE_RASTERTOOLBASE_H
|
||
#define LAMPCAE_RASTERTOOLBASE_H
|
||
#include "BaseConstVariable.h"
|
||
#include "gdal_priv.h"
|
||
#include <memory>
|
||
#include "LogInfoCls.h"
|
||
|
||
|
||
namespace RasterToolBase {
|
||
|
||
static bool GDALAllRegisterEnable = false;
|
||
|
||
|
||
enum ProjectStripDelta {
|
||
Strip_6, // 6度带
|
||
Strip_3
|
||
};
|
||
|
||
enum CoordinateSystemType { // 坐标系类型
|
||
GeoCoordinateSystem,
|
||
ProjectCoordinateSystem,
|
||
UNKNOW
|
||
};
|
||
|
||
struct PointRaster { // 影像坐标点
|
||
double x;
|
||
double y;
|
||
double z;
|
||
};
|
||
|
||
|
||
struct PointXYZ {
|
||
double x, y, z;
|
||
};
|
||
|
||
struct PointGeo {
|
||
double lon, lat, ati;
|
||
};
|
||
|
||
struct PointImage {
|
||
double pixel_x, pixel_y;
|
||
};
|
||
|
||
/// 根据经纬度获取
|
||
/// EPSG代码,根据经纬度返回对应投影坐标系统,其中如果在中华人民共和国境内,默认使用
|
||
/// CGCS2000坐标系统(EPSG 4502 ~ 4512 6度带,EPSG 4534 ~ 4554 3度带),其余地方使用WGS坐标系统,
|
||
/// 投影方法 高斯克吕格(国内), 高斯克吕格
|
||
/// \param long 经度
|
||
/// \param lat 纬度
|
||
/// \return 对应投影坐标系统的 EPSG编码,-1 表示计算错误
|
||
long BASECONSTVARIABLEAPI getProjectEPSGCodeByLon_Lat(double long, double lat,
|
||
ProjectStripDelta stripState = ProjectStripDelta::Strip_3);
|
||
|
||
long BASECONSTVARIABLEAPI getProjectEPSGCodeByLon_Lat_inStrip3(double lon, double lat);
|
||
|
||
long BASECONSTVARIABLEAPI getProjectEPSGCodeByLon_Lat_inStrip6(double lon, double lat);
|
||
|
||
|
||
QString BASECONSTVARIABLEAPI GetProjectionNameFromEPSG(long epsgCode);
|
||
|
||
|
||
long BASECONSTVARIABLEAPI GetEPSGFromRasterFile(QString filepath);
|
||
|
||
std::shared_ptr<PointRaster> BASECONSTVARIABLEAPI GetCenterPointInRaster(QString filepath);
|
||
|
||
CoordinateSystemType BASECONSTVARIABLEAPI getCoordinateSystemTypeByEPSGCode(long EPSGCODE);
|
||
|
||
};// namespace RasterProjectConvertor
|
||
|
||
|
||
|
||
|
||
// 遥感类常用数据
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
#endif // LAMPCAE_RASTERTOOLBASE_H
|