Initial commit of files
This commit is contained in:
81
include/libgps++/GpsMath.h
Normal file
81
include/libgps++/GpsMath.h
Normal file
@ -0,0 +1,81 @@
|
||||
//
|
||||
// Linux GPS
|
||||
//
|
||||
|
||||
/* prevent multiple inclusions */
|
||||
#ifndef __GpsMath__
|
||||
#define __GpsMath__
|
||||
|
||||
/* includes *****************************************************************/
|
||||
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include "netlib.h"
|
||||
|
||||
/* defines ******************************************************************/
|
||||
|
||||
// degrees <-> radians
|
||||
#define DEG2RAD(X) ((X)*M_PI/180.0)
|
||||
#define RAD2DEG(X) ((X)*180.0/M_PI)
|
||||
|
||||
// (nautical mile to km) to meters per degree
|
||||
#define MPERDEG (111.13285*1000.0)
|
||||
#define EARTHRADIUS 6378100.0 // meters
|
||||
|
||||
// speed conversions
|
||||
#define KNOTS_KPH 1.85200
|
||||
#define KNOTS_METERSPERSEC (KNOTS_KPH*1000.0/3600.0)
|
||||
|
||||
#define KPH2MSEC(X) ((X)*0.277777778)
|
||||
#define MSEC2KPH(X) ((X)/0.277777778)
|
||||
|
||||
/* macros *******************************************************************/
|
||||
|
||||
/* structs & typedefs *******************************************************/
|
||||
|
||||
/* c class definitions ******************************************************/
|
||||
|
||||
//
|
||||
// GpsLinux because it depennds on GPSd, the HAMLIB and NMEAP libraries
|
||||
//
|
||||
class GpsMath {
|
||||
// public data
|
||||
public:
|
||||
|
||||
// parser
|
||||
|
||||
// protected data
|
||||
protected:
|
||||
|
||||
// private data
|
||||
private:
|
||||
// static data
|
||||
|
||||
// private methods
|
||||
|
||||
// public methods
|
||||
public:
|
||||
// constructors
|
||||
GpsMath();
|
||||
|
||||
// destructor
|
||||
virtual ~GpsMath();
|
||||
|
||||
// virtual functions
|
||||
|
||||
// public methods
|
||||
|
||||
// static methods
|
||||
static double Minutes2Degrees(char *value, char *side = NULL);
|
||||
static void Degrees2Minutes(double deg, char *buf, int max, bool lat);
|
||||
static timespec String2Time(const char *hhmmss, const char *ddmmyy);
|
||||
|
||||
static double Bearing( double lat1, double lon1, double lat2, double lon2 );
|
||||
static double Distance( double lat1, double lon1, double lat2, double lon2 );
|
||||
static double DistanceX( double lat1, double lon1, double lat2, double lon2 );
|
||||
static double DistanceY( double lat1, double lon1, double lat2, double lon2 );
|
||||
static double DistanceXY(double lat1, double lon1, double lat2, double lon2, double &x, double &y );
|
||||
static double Travel( double *lat, double *lon, double *ele, double x, double y, double z);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user