1 #ifndef OSMIUM_GEOM_MERCATOR_PROJECTION_HPP 2 #define OSMIUM_GEOM_MERCATOR_PROJECTION_HPP 49 constexpr
double earth_radius_for_epsg3857 = 6378137.0;
50 constexpr
double max_coordinate_epsg3857 = 20037508.34;
52 constexpr
inline double lon_to_x(
double lon) {
53 return earth_radius_for_epsg3857 *
deg_to_rad(lon);
56 inline double lat_to_y(
double lat) {
60 constexpr
inline double x_to_lon(
double x) {
61 return rad_to_deg(x) / earth_radius_for_epsg3857;
64 inline double y_to_lat(
double y) {
77 return Coordinates(detail::lon_to_x(c.
x), detail::lat_to_y(c.
y));
81 return Coordinates(detail::x_to_lon(c.
x), detail::y_to_lat(c.
y));
93 return Coordinates {detail::lon_to_x(location.
lon()), detail::lat_to_y(location.
lat())};
96 int epsg() const noexcept {
101 return "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs";
110 #endif // OSMIUM_GEOM_MERCATOR_PROJECTION_HPP Coordinates operator()(osmium::Location location) const
Definition: mercator_projection.hpp:92
double y
Definition: coordinates.hpp:49
Coordinates mercator_to_lonlat(const Coordinates &c)
Definition: mercator_projection.hpp:80
std::string proj_string() const
Definition: mercator_projection.hpp:100
double lat() const
Definition: location.hpp:206
Namespace for everything in the Osmium library.
Definition: assembler.hpp:66
constexpr double deg_to_rad(double degree) noexcept
Convert angle from degrees to radians.
Definition: util.hpp:62
Definition: coordinates.hpp:46
Coordinates lonlat_to_mercator(const Coordinates &c)
Definition: mercator_projection.hpp:76
constexpr double MERCATOR_MAX_LAT
Definition: mercator_projection.hpp:74
Definition: location.hpp:80
Definition: mercator_projection.hpp:88
double lon() const
Definition: location.hpp:187
double x
Definition: coordinates.hpp:48
int epsg() const noexcept
Definition: mercator_projection.hpp:96
constexpr double PI
Definition: util.hpp:59
constexpr double rad_to_deg(double radians) noexcept
Convert angle from radians to degrees.
Definition: util.hpp:67