|
|
#pragma once
|
|
|
#include <vector>
|
|
|
#include <cmath>
|
|
|
using namespace std;
|
|
|
#define PI 3.14159265358979323846
|
|
|
class GeoCompute
|
|
|
{
|
|
|
public:
|
|
|
GeoCompute(void);
|
|
|
~GeoCompute(void);
|
|
|
|
|
|
/*@brief 根据起点坐标、方位角、距离,计算另一点坐标。
|
|
|
* 使用Vincenty's公式求解,使用WGS-84椭球
|
|
|
* startPoint:起始点地理坐标点(lat(-90到90),lon(-180,180))
|
|
|
* bearing:方位角(度)
|
|
|
* dist:两点之间距离(km)
|
|
|
*/
|
|
|
void computeOffsetGeoPosition(double lon1, double lat1, double bearing, double dist,double& targetLon,double& targetLat);
|
|
|
|
|
|
|
|
|
// 使用Vincenty's公式计算地理距离(m)
|
|
|
double VincentyDistance(double lon1, double lat1, double lon2, double lat2);
|
|
|
};
|
|
|
|