/ru/utils/GPSInfo.h

https://bitbucket.org/VladimirL/robotutils · C Header · 67 lines · 47 code · 16 blank · 4 comment · 0 complexity · a57011b1c6194af5f38e2edb3db75cc2 MD5 · raw file

  1. // GPSInfo.h: interface for the GPSInfo class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_GPSINFO_H__2040A232_786E_4C7B_8EA5_0A9438ED6C1F__INCLUDED_)
  5. #define AFX_GPSINFO_H__2040A232_786E_4C7B_8EA5_0A9438ED6C1F__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <QPoint>
  10. #include <math.h>
  11. #define DOUBLE double
  12. #define ULONG unsigned long
  13. #define UINT unsigned int
  14. #define CHAR char
  15. #define BOOL bool
  16. class GPSInfo;
  17. class UTMInfo
  18. {
  19. public:
  20. double latitude;
  21. double longitude;
  22. int utmXZone;
  23. char utmYZone;
  24. UTMInfo();
  25. UTMInfo(int utmXZone, char utmYZone, double latutude, double longitude);
  26. //void fromGPSInfo(const GPSInfo& pos);
  27. inline QPointF toQPointF() {
  28. return QPointF(latitude, longitude);
  29. }
  30. };
  31. class GPSInfo
  32. {
  33. public:
  34. DOUBLE m_latitude;
  35. DOUBLE m_longitude;
  36. DOUBLE m_altitude;
  37. ULONG m_nSentences;
  38. UINT m_signalQuality;
  39. UINT m_satelitesInUse;
  40. GPSInfo();
  41. GPSInfo(double lat, double lon);
  42. virtual ~GPSInfo();
  43. UTMInfo toUTMProj();
  44. void fromUTMProj(const UTMInfo &pos);
  45. private:
  46. void LatLonToUtm(double a, double f, int& utmXZone, char& utmYZone,
  47. double& easting, double& northing, double lat, double lon);
  48. void UtmToLatLon (double a, double f, int utmXZone, char utmYZone,
  49. double easting, double northing, double& lat, double& lon);
  50. };
  51. #endif // !defined(AFX_GPSINFO_H__2040A232_786E_4C7B_8EA5_0A9438ED6C1F__INCLUDED_)