1
#ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_
2
#define LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_
4
#include "com/ubuntu/location/wgs84/altitude.h"
5
#include "com/ubuntu/location/wgs84/latitude.h"
6
#include "com/ubuntu/location/wgs84/longitude.h"
27
typedef std::bitset<3> Flags;
31
const wgs84::Latitude& latitude,
32
const wgs84::Longitude& longitude);
34
const wgs84::Latitude& latitude,
35
const wgs84::Longitude& longitude,
36
const wgs84::Altitude& altitude);
38
bool operator==(const Position& rhs) const;
39
bool operator!=(const Position& rhs) const;
41
const Flags& flags() const;
43
bool has_latitude() const;
44
Position& latitude(const wgs84::Latitude& lat);
45
const wgs84::Latitude& latitude() const;
47
bool has_longitude() const;
48
Position& longitude(const wgs84::Longitude& lon);
49
const wgs84::Longitude& longitude() const;
51
bool has_altitude() const;
52
Position& altitude(const wgs84::Altitude& alt);
53
const wgs84::Altitude& altitude() const;
56
template<typename> friend struct Codec;
61
wgs84::Latitude latitude;
62
wgs84::Longitude longitude;
63
wgs84::Altitude altitude;
67
std::ostream& operator<<(std::ostream& out, const Position& position);
69
units::Quantity<units::Length> haversine_distance(const Position& p1, const Position& p2);
73
#endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_