1 #ifndef OSMIUM_GEOM_PROJECTION_HPP 2 #define OSMIUM_GEOM_PROJECTION_HPP 70 std::unique_ptr<void, ProjCRSDeleter>
m_crs;
74 explicit CRS(
const char* crs) :
81 explicit CRS(
const std::string& crs) :
85 explicit CRS(
int epsg) :
86 CRS(
std::string{
"+init=epsg:"} + std::to_string(epsg)) {
92 projPJ
get()
const noexcept {
97 return pj_is_latlong(m_crs.get()) != 0;
101 return pj_is_geocent(m_crs.get()) != 0;
115 const int result = pj_transform(src.
get(), dest.
get(), 1, 1, &c.
x, &c.
y,
nullptr);
144 m_proj_string(proj_string),
145 m_crs_user(proj_string) {
150 m_proj_string(proj_string),
151 m_crs_user(proj_string) {
156 m_proj_string(
std::string{
"+init=epsg:"} + std::to_string(epsg)),
161 if (m_epsg == 4326) {
163 }
else if (m_epsg == 3857) {
165 detail::lat_to_y(location.
lat())};
183 return m_proj_string;
192 #endif // OSMIUM_GEOM_PROJECTION_HPP double y
Definition: coordinates.hpp:51
projPJ get() const noexcept
Definition: projection.hpp:92
double lon() const
Definition: location.hpp:371
std::string proj_string() const
Definition: projection.hpp:182
bool is_latlong() const noexcept
Definition: projection.hpp:96
Definition: projection.hpp:64
double lat() const
Definition: location.hpp:390
Definition: reader_iterator.hpp:39
CRS(int epsg)
Definition: projection.hpp:85
bool is_geocent() const noexcept
Definition: projection.hpp:100
Projection(int epsg)
Definition: projection.hpp:154
CRS(const std::string &crs)
Definition: projection.hpp:81
Coordinates transform(const CRS &src, const CRS &dest, Coordinates c)
Definition: projection.hpp:114
Namespace for everything in the Osmium library.
Definition: assembler.hpp:63
constexpr double deg_to_rad(double degree) noexcept
Convert angle from degrees to radians.
Definition: util.hpp:62
std::string m_proj_string
Definition: projection.hpp:136
Definition: coordinates.hpp:48
CRS m_crs_user
Definition: projection.hpp:138
std::unique_ptr< void, ProjCRSDeleter > m_crs
Definition: projection.hpp:70
CRS(const char *crs)
Definition: projection.hpp:74
Definition: projection.hpp:133
Definition: location.hpp:266
int m_epsg
Definition: projection.hpp:135
void operator()(void *crs)
Definition: projection.hpp:65
Definition: projection.hpp:62
Projection(const std::string &proj_string)
Definition: projection.hpp:142
Projection(const char *proj_string)
Definition: projection.hpp:148
int epsg() const noexcept
Definition: projection.hpp:178
double x
Definition: coordinates.hpp:50
Coordinates operator()(osmium::Location location) const
Definition: projection.hpp:160
constexpr double rad_to_deg(double radians) noexcept
Convert angle from radians to degrees.
Definition: util.hpp:67