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++

#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