Welcome to mirror list, hosted at ThFree Co, Russian Federation.

location.hpp « platform - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cbfbc82475d096e4314ff5b26d9f1b9bb8518c3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma once

#include "../std/string.hpp"
#include "../std/vector.hpp"
#include "../std/function.hpp"

namespace location
{
  /// @note Do not change values of this constants.
  enum TLocationError
  {
    ENoError = 0,
    ENotSupported,
    EDenied,
    EGPSIsOff
  };

  enum TLocationSource
  {
    EAppleNative,
    EWindowsNative,
    EAndroidNative,
    EGoogle
  };

  /// @note always check m_status before using this structure
  class GpsInfo
  {
  public:
    TLocationSource m_source;
    double m_timestamp;           //!< seconds from 1st Jan 1970
    double m_latitude;            //!< degrees
    double m_longitude;           //!< degrees
    double m_horizontalAccuracy;  //!< metres
//    double m_altitude;            //!< metres
//    double m_verticalAccuracy;    //!< metres
//    double m_course;              //!< positive degrees from the true North
//    double m_speed;               //!< metres per second
  };

  /// @note always check m_status before using this structure
  class CompassInfo
  {
  public:
    double m_timestamp;           //!< how many seconds ago the heading was retrieved
    double m_magneticHeading;     //!< positive radians from the magnetic North
    double m_trueHeading;         //!< positive radians from the true North
    double m_accuracy;            //!< offset from the magnetic to the true North in radians
  };

  static inline bool IsLatValid(double lat)
  {
    return lat != 0. && lat < 90. && lat > -90.;
  }
  static inline bool IsLonValid(double lon)
  {
    return lon != 0. && lon < 180. && lon > -180.;
  }

} // namespace location