You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#ifndef GEOCOMPUTATION_H
|
|
#define GEOCOMPUTATION_H
|
|
|
|
#include "qpoint.h"
|
|
#include <QVector>
|
|
#include "Map/UGMap.h"
|
|
#include "Geometry/UGGeoLine.h"
|
|
#include "Geometry3D/UGGeoLine3D.h"
|
|
#include "geospatialanalysis.h"
|
|
|
|
using namespace UGC;
|
|
|
|
class GeoComputation
|
|
{
|
|
public:
|
|
GeoComputation();
|
|
|
|
//计算两点间球面距离
|
|
double getSphericalDistance(double lon1, double lat1,double lon2, double lat2);
|
|
|
|
//根据起始点、距离、方向角计算目标点坐标
|
|
QPointF getDestinationPoint(double lon1, double lat1, double bearing, double dist);
|
|
|
|
QPointF computeOffsetGeoPosition(double lon1, double lat1, double bearing, double dist);
|
|
|
|
UGPoint2D DPtoMP(UGMap* pMap, const QPoint &point); //显示坐标转地图坐标
|
|
|
|
//获取几何对象长度
|
|
double getGeometryLength(UGGeometry* geometry);
|
|
//计算高度余量
|
|
void getAlititudeDiff(UGGeoLine3D line3D,UGDatasetRasterPtr dem,QVector<double>& x_dist,QVector<double>& z_diff);
|
|
|
|
private:
|
|
GeoSpatialAnalysis geoAnalysisMag;
|
|
};
|
|
|
|
#endif // GEOCOMPUTATION_H
|