22 using Elevation = std::array<uint8_t, 2>;
23 static const Elevation unknown_elevation;
24 static const Elevation min_elevation;
25 static const Elevation max_elevation;
27 ThreeDLocation() =
default;
28 ThreeDLocation(geonet::geo_angle_i32t latitude, geonet::geo_angle_i32t longitude) :
29 latitude(latitude), longitude(longitude), elevation(unknown_elevation) {}
30 ThreeDLocation(units::GeoAngle latitude, units::GeoAngle longitude) :
31 latitude(latitude), longitude(longitude), elevation(unknown_elevation) {}
32 ThreeDLocation(geonet::geo_angle_i32t latitude, geonet::geo_angle_i32t longitude, Elevation elevation) :
33 latitude(latitude), longitude(longitude), elevation(elevation) {}
34 ThreeDLocation(units::GeoAngle latitude, units::GeoAngle longitude, Elevation elevation) :
35 latitude(latitude), longitude(longitude), elevation(elevation) {}
37 geonet::geo_angle_i32t latitude;
38 geonet::geo_angle_i32t longitude;
41 bool operator==(
const ThreeDLocation&)
const;
42 bool operator!=(
const ThreeDLocation&)
const;
48 TwoDLocation() =
default;
49 TwoDLocation(geonet::geo_angle_i32t latitude, geonet::geo_angle_i32t longitude) :
50 latitude(latitude), longitude(longitude) {}
51 TwoDLocation(units::GeoAngle latitude, units::GeoAngle longitude) :
52 latitude(latitude), longitude(longitude) {}
54 latitude(threeD.latitude), longitude(threeD.longitude) {}
56 geonet::geo_angle_i32t latitude;
57 geonet::geo_angle_i32t longitude;
59 bool operator==(
const TwoDLocation&)
const;
60 bool operator!=(
const TwoDLocation&)
const;
75 CircularRegion() =
default;
76 CircularRegion(
const TwoDLocation& center, geonet::distance_u16t radius) :
77 center(center), radius(radius) {}
78 CircularRegion(
const TwoDLocation& center, units::Length radius) :
79 center(center), radius(radius) {}
82 geonet::distance_u16t radius;
84 bool operator==(
const CircularRegion&)
const;
85 bool operator!=(
const CircularRegion&)
const;