eckit::geo::PointLonLat class final

The PointLonLat class.

A point on a geographic coordinate system, in (longitude, latitude) coordinates [degree]; They are fully circular in space (also latitude), longitude is typically limited to [0, 360[ and latitude to [-90, 90], with normalisation functions available, as well as conversion to and from radian-based coordinates.

Public types

using container_type = array

Public static variables

static value_type FULL_ANGLE constexpr
static value_type FLAT_ANGLE constexpr
static value_type RIGHT_ANGLE constexpr
static value_type EPS constexpr

Public static functions

static auto normalise_angle_to_minimum(value_type, value_type minimum) -> value_type
static auto normalise_angle_to_maximum(value_type, value_type maximum) -> value_type
static void assert_latitude_range(const PointLonLat&)
static auto make(value_type lon, value_type lat, value_type lon_minimum = 0., value_type eps = EPS) -> PointLonLat
static auto make_from_lonlatr(value_type lonr, value_type latr, value_type lonr_minimum = 0.) -> PointLonLat
static auto componentsMin(const PointLonLat& p, const PointLonLat& q) -> PointLonLat
static auto componentsMax(const PointLonLat& p, const PointLonLat& q) -> PointLonLat

Constructors, destructors, conversion operators

PointLonLat()
PointLonLat(value_type lon, value_type lat)
PointLonLat(const PointLonLat& other)
PointLonLat(PointLonLat&& other)
~PointLonLat() defaulted

Public functions

auto operator=(const PointLonLat& other) -> PointLonLat&
auto operator=(PointLonLat&& other) -> PointLonLat&
auto antipode() const -> PointLonLat

Public variables

const value_type& lon
const value_type& lat

Friends

auto operator<<(std::ostream& out, const PointLonLat& p) -> std::ostream&
auto operator-(const PointLonLat& p, const PointLonLat& q) -> PointLonLat
auto operator+(const PointLonLat& p, const PointLonLat& q) -> PointLonLat
auto operator*(const PointLonLat& p, value_type d) -> PointLonLat
auto operator<(const PointLonLat& p, const PointLonLat& q) -> bool