2025-05-31 15:28:41 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "standardglobe_global.h"
|
2025-06-01 14:37:26 +00:00
|
|
|
|
#include <qvector3d.h>
|
2025-05-31 15:28:41 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-06-01 14:37:26 +00:00
|
|
|
|
/// <20><>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
2025-05-31 15:28:41 +00:00
|
|
|
|
/// </summary>
|
|
|
|
|
struct LLAPos {
|
|
|
|
|
double _lon_deg = 0;
|
|
|
|
|
double _lat_deg = 0;
|
|
|
|
|
double _alt_m = 0;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-01 14:37:26 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct ECEFPos {
|
|
|
|
|
double _x_pos = 0;
|
|
|
|
|
double _y_pos = 0;
|
|
|
|
|
double _z_pos = 0;
|
|
|
|
|
QVector3D getVector() const;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>챱<EFBFBD><ECB1B1><EFBFBD><EFBFBD>ϵ
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct ENUPos {
|
|
|
|
|
double _e_pos = 0;
|
|
|
|
|
double _n_pos = 0;
|
|
|
|
|
double _t_pos = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct PolarPos {
|
|
|
|
|
double _dist_m = 0;
|
|
|
|
|
double _azimuth_deg = 0;
|
|
|
|
|
double _pitch_deg = 0;
|
|
|
|
|
};
|
|
|
|
|
|
2025-05-31 15:28:41 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
class STANDARDGLOBE_EXPORT StandardGlobe
|
|
|
|
|
{
|
2025-06-01 14:37:26 +00:00
|
|
|
|
private:
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>
|
|
|
|
|
/// </summary>
|
|
|
|
|
static double _radius_m;
|
|
|
|
|
|
2025-05-31 15:28:41 +00:00
|
|
|
|
public:
|
2025-06-01 14:37:26 +00:00
|
|
|
|
StandardGlobe();
|
|
|
|
|
|
|
|
|
|
static ECEFPos llaToEcef(const LLAPos &v);
|
|
|
|
|
static void getDistanceWithin(const LLAPos &base, const LLAPos &target, double dist, double azi);
|
|
|
|
|
|
2025-05-31 15:28:41 +00:00
|
|
|
|
};
|