4 #define _USE_MATH_DEFINES
9 #define M_PI 3.1415926535897931160E0
12 #define GEODESIC_WGS84_SEMI_MAJORAXIS 6378137.0
13 #define GEODESIC_WGS84_SEMI_MINORAXIS 6356752.3142
14 #define GEODESIC_DEG2RAD(d) ((d) * (M_PI / 180.0))
15 #define GEODESIC_RAD2DEG(r) ((r) * (180.0 / M_PI))
16 #define GEODESIC_METERS2NM(m) ((m)*0.000539956803)
17 #define GEODESIC_NM2METERS(nm) ((nm) / 0.000539956803)
18 #define GEODESIC_METERS2FT(m) ((m)*3.2808399)
19 #define GEODESIC_FT2METERS(ft) ((ft) / 3.2808399)
20 #define GEODESIC_MPERS2KT(mpers) ((mpers)*1.9438445)
21 #define GEODESIC_KT2MPERS(mpers) ((mpers) / 1.9438445)
28 static double GreatCircleDistBear(
double Lon1,
double Lat1,
double Lon2,
29 double Lat2,
double *Dist = NULL,
30 double *Bear1 = NULL,
double *Bear2 = NULL);
31 static void GreatCircleTravel(
double Lon1,
double Lat1,
double Dist,
32 double Bear1,
double *Lon2 = NULL,
33 double *Lat2 = NULL,
double *Bear2 = NULL);