ubuntu-location-service: /build/location-service-git/src/location-service/include/location_service/com/ubuntu/location/position.h Source File

ubuntu-location-service .. An aggregating location service providing positioning and geocoding capabilities to applications.

position.h
Go to the documentation of this file.
1 /*
2 * Copyright © 2012-2013 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Thomas Voß <thomas.voss@canonical.com>
17 */
18 #ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_
19 #define LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_
20
21 #include <com/ubuntu/location/wgs84/altitude.h>
22 #include <com/ubuntu/location/wgs84/latitude.h>
23 #include <com/ubuntu/location/wgs84/longitude.h>
24
25 #include <com/ubuntu/location/optional.h>
26
27 #include <bitset>
28 #include <ostream>
29
30 namespace com
31 {
32 namespace ubuntu
33 {
34 namespace location
35 {
39 struct Position
40 {
41 struct Accuracy
42 {
43 typedef units::Quantity<units::Length> Horizontal;
44 typedef units::Quantity<units::Length> Vertical;
45
46 Optional<Horizontal> horizontal{};
47 Optional<Vertical> vertical{};
48 };
49
50 Position() = default;
51 Position(const wgs84::Latitude&, const wgs84::Longitude&);
52 Position(const wgs84::Latitude&, const wgs84::Longitude&, const wgs84::Altitude&);
53 Position(const wgs84::Latitude&, const wgs84::Longitude&, const wgs84::Altitude&, const units::Quantity<units::Length>& hor_acc);
54 Position(const wgs84::Latitude&, const wgs84::Longitude&, const wgs84::Altitude&, const units::Quantity<units::Length>& hor_acc, const units::Quantity<units::Length>& ver_acc);
55
56 bool operator==(const Position& rhs) const;
57 bool operator!=(const Position& rhs) const;
58
59 wgs84::Latitude latitude = wgs84::Latitude{};
60 wgs84::Longitude longitude = wgs84::Longitude{};
61 Optional<wgs84::Altitude> altitude = Optional<wgs84::Altitude>{};
62 Accuracy accuracy{};
63 };
64
65 std::ostream& operator<<(std::ostream& out, const Position& position);
66
67 units::Quantity<units::Length> haversine_distance(const Position& p1, const Position& p2);
68 }
69 }
70 }
71 #endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_POSITION_H_
altitude.h
com::ubuntu::location::wgs84::Coordinate
Definition: coordinate.h:43
latitude.h
longitude.h
com::ubuntu::location::units::Quantity
boost::units::quantity< Unit, double > Quantity
Definition: units.h:53
com::ubuntu::location::wgs84::Longitude
Coordinate< tag::Longitude, units::PlaneAngle > Longitude
Definition: longitude.h:38
com::ubuntu::location::wgs84::Latitude
Coordinate< tag::Latitude, units::PlaneAngle > Latitude
Definition: latitude.h:38
com::ubuntu::location::operator<<
std::ostream & operator<<(std::ostream &out, const Accuracy< T > &update)
Definition: accuracy.h:68
com::ubuntu::location::Optional
boost::optional< T > Optional
Definition: optional.h:30
com::ubuntu::location::haversine_distance
units::Quantity< units::Length > haversine_distance(const Position &p1, const Position &p2)
com
Definition: accuracy.h:24
optional.h
com::ubuntu::location::Position::Accuracy
Definition: position.h:42
com::ubuntu::location::Position::Accuracy::vertical
Optional< Vertical > vertical
Definition: position.h:47
com::ubuntu::location::Position::Accuracy::Vertical
units::Quantity< units::Length > Vertical
Definition: position.h:44
com::ubuntu::location::Position::Accuracy::Horizontal
units::Quantity< units::Length > Horizontal
Definition: position.h:43
com::ubuntu::location::Position::Accuracy::horizontal
Optional< Horizontal > horizontal
Definition: position.h:46
com::ubuntu::location::Position
The Position struct models a position in the wgs84 coordinate system.
Definition: position.h:40
com::ubuntu::location::Position::longitude
wgs84::Longitude longitude
Definition: position.h:60
com::ubuntu::location::Position::Position
Position(const wgs84::Latitude &, const wgs84::Longitude &, const wgs84::Altitude &, const units::Quantity< units::Length > &hor_acc)
com::ubuntu::location::Position::altitude
Optional< wgs84::Altitude > altitude
Definition: position.h:61
com::ubuntu::location::Position::Position
Position()=default
com::ubuntu::location::Position::latitude
wgs84::Latitude latitude
Definition: position.h:59
com::ubuntu::location::Position::Position
Position(const wgs84::Latitude &, const wgs84::Longitude &)
com::ubuntu::location::Position::Position
Position(const wgs84::Latitude &, const wgs84::Longitude &, const wgs84::Altitude &)
com::ubuntu::location::Position::Position
Position(const wgs84::Latitude &, const wgs84::Longitude &, const wgs84::Altitude &, const units::Quantity< units::Length > &hor_acc, const units::Quantity< units::Length > &ver_acc)
com::ubuntu::location::Position::accuracy
Accuracy accuracy
Definition: position.h:62
com::ubuntu::location::Position::operator!=
bool operator!=(const Position &rhs) const
com::ubuntu::location::Position::operator==
bool operator==(const Position &rhs) const