Loading...
Searching...
No Matches
osmium::Location Class Reference

`#include <location.hpp>`

## Public Types

enum | { undefined_coordinate = 2147483647 }

## Public Member Functions

constexpr | Location () noexcept
constexpr | Location (const int32_t x, const int32_t y) noexcept
constexpr | Location (const int64_t x, const int64_t y) noexcept
| Location (const double lon, const double lat)
constexpr | operator bool () const noexcept
constexpr bool | valid () const noexcept
constexpr bool | is_defined () const noexcept
constexpr bool | is_undefined () const noexcept
constexpr int32_t | x () const noexcept
constexpr int32_t | y () const noexcept
Location & | set_x (const int32_t x) noexcept
Location & | set_y (const int32_t y) noexcept
double | lon () const
double | lon_without_check () const noexcept
double | lat () const
double | lat_without_check () const noexcept
Location & | set_lon (double lon) noexcept
Location & | set_lat (double lat) noexcept
Location & | set_lon (const char *str)
Location & | set_lat (const char *str)
Location & | set_lon_partial (const char **str)
Location & | set_lat_partial (const char **str)
template<typename T >
T | as_string_without_check (T iterator, const char separator=',') const
template<typename T >
T | as_string (T iterator, const char separator=',') const

## Static Public Member Functions

static int32_t | double_to_fix (const double c) noexcept
static constexpr double | fix_to_double (const int32_t c) noexcept

## Static Private Member Functions

static constexpr double | precision () noexcept

## Private Attributes

int32_t | m_x
int32_t | m_y

## Detailed Description

Locations define a place on earth.

Locations are stored in 32 bit integers for the x and y coordinates, respectively. This gives you an accuracy of a few centimeters, good enough for OSM use. (The main OSM database uses the same scheme.)

An undefined Location can be created by calling the constructor without parameters.

Coordinates are never checked on whether they are inside bounds. Call valid() to check this.

## Member Enumeration Documentation

## anonymous enum

anonymous enum

Enumerator
undefined_coordinate |

## Constructor & Destructor Documentation

## Location() [1/4]

constexpr osmium::Location::Location | ( |  | ) |

inline explicit constexpr noexcept

Create undefined Location.

## Location() [2/4]

constexpr osmium::Location::Location | ( | const int32_t | x,
|  | const int32_t | y
| ) |  |

inline constexpr noexcept

Create Location with given x and y coordinates. Note that these coordinates are coordinate_precision times larger than the real coordinates.

## Location() [3/4]

constexpr osmium::Location::Location | ( | const int64_t | x,
|  | const int64_t | y
| ) |  |

inline constexpr noexcept

Create Location with given x and y coordinates. Note that these coordinates are coordinate_precision times larger than the real coordinates.

## Location() [4/4]

osmium::Location::Location | ( | const double | lon,
|  | const double | lat
| ) |  |

inline

Create Location with given longitude and latitude in WGS84 coordinates.

## Member Function Documentation

## as_string()

template<typename T >

T osmium::Location::as_string | ( | T | iterator,
|  | const char | separator = `','`
| ) |  | const

inline

## as_string_without_check()

template<typename T >

T osmium::Location::as_string_without_check | ( | T | iterator,
|  | const char | separator = `','`
| ) |  | const

inline

## double_to_fix()

static int32_t osmium::Location::double_to_fix | ( | const double | c | ) |

inline static noexcept

## fix_to_double()

static constexpr double osmium::Location::fix_to_double | ( | const int32_t | c | ) |

inline static constexpr noexcept

## is_defined()

constexpr bool osmium::Location::is_defined | ( |  | ) | const

inline constexpr noexcept

Returns true if at least one of the coordinates is defined.

See also is_undefined() and is_valid().

## is_undefined()

constexpr bool osmium::Location::is_undefined | ( |  | ) | const

inline constexpr noexcept

Returns true if both coordinates are undefined.

See also is_defined() and is_valid().

## lat()

double osmium::Location::lat | ( |  | ) | const

inline

Get latitude.

Exceptions

  invalid_location | if the location is invalid

## lat_without_check()

double osmium::Location::lat_without_check | ( |  | ) | const

inline noexcept

Get latitude without checking the validity.

## lon()

double osmium::Location::lon | ( |  | ) | const

inline

Get longitude.

Exceptions

  invalid_location | if the location is invalid

## lon_without_check()

double osmium::Location::lon_without_check | ( |  | ) | const

inline noexcept

Get longitude without checking the validity.

## operator bool()

constexpr osmium::Location::operator bool | ( |  | ) | const

inline explicit constexpr noexcept

Check whether the coordinates of this location are defined.

Deprecated:
  Use is_defined() or is_undefined() or is_valid() which have all slightly different meanings.

## precision()

static constexpr double osmium::Location::precision | ( |  | ) |

inline static constexpr private noexcept

## set_lat() [1/2]

Location & osmium::Location::set_lat | ( | const char * | str | ) |

inline

## set_lat() [2/2]

Location & osmium::Location::set_lat | ( | double | lat | ) |

inline noexcept

## set_lat_partial()

Location & osmium::Location::set_lat_partial | ( | const char ** | str | ) |

inline

## set_lon() [1/2]

Location & osmium::Location::set_lon | ( | const char * | str | ) |

inline

## set_lon() [2/2]

Location & osmium::Location::set_lon | ( | double | lon | ) |

inline noexcept

## set_lon_partial()

Location & osmium::Location::set_lon_partial | ( | const char ** | str | ) |

inline

## set_x()

Location & osmium::Location::set_x | ( | const int32_t | x | ) |

inline noexcept

## set_y()

Location & osmium::Location::set_y | ( | const int32_t | y | ) |

inline noexcept

## valid()

constexpr bool osmium::Location::valid | ( |  | ) | const

inline constexpr noexcept

Check whether the coordinates are inside the usual bounds (-180<=lon<=180, -90<=lat<=90).

See also is_defined() and is_undefined().

## x()

constexpr int32_t osmium::Location::x | ( |  | ) | const

inline constexpr noexcept

## y()

constexpr int32_t osmium::Location::y | ( |  | ) | const

inline constexpr noexcept

## Member Data Documentation

## m_x

int32_t osmium::Location::m_x

private

## m_y

int32_t osmium::Location::m_y

private

The documentation for this class was generated from the following file:

- include/osmium/osm/location.hpp