1 #ifndef OSMIUM_GEOM_PROJECTION_HPP
2 #define OSMIUM_GEOM_PROJECTION_HPP
69 std::unique_ptr<void, ProjCRSDeleter>
m_crs;
73 explicit CRS(
const std::string& crs) :
80 explicit CRS(
const char* crs) :
84 explicit CRS(
int epsg) :
85 CRS(
std::string{
"+init=epsg:"} + std::to_string(epsg)) {
96 return pj_is_latlong(m_crs.get()) != 0;
100 return pj_is_geocent(m_crs.get()) != 0;
114 int result = pj_transform(src.
get(), dest.
get(), 1, 1, &c.
x, &c.
y,
nullptr);
136 m_proj_string(proj_string),
137 m_crs_user(proj_string) {
142 m_proj_string(proj_string),
143 m_crs_user(proj_string) {
148 m_proj_string(
std::string(
"+init=epsg:") +
std::to_string(epsg)),
155 if (m_epsg != 4326) {
180 #endif // OSMIUM_GEOM_PROJECTION_HPP
double y
Definition: coordinates.hpp:49
Definition: projection.hpp:63
CRS m_crs_wgs84
Definition: projection.hpp:129
Definition: reader_iterator.hpp:39
CRS(int epsg)
Definition: projection.hpp:84
bool is_latlong() const
Definition: projection.hpp:95
Projection(int epsg)
Definition: projection.hpp:146
CRS(const std::string &crs)
Definition: projection.hpp:73
std::string proj_string() const
Definition: projection.hpp:170
Coordinates transform(const CRS &src, const CRS &dest, Coordinates c)
Definition: projection.hpp:113
double lat() const
Definition: location.hpp:390
Namespace for everything in the Osmium library.
Definition: assembler.hpp:73
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:128
Definition: coordinates.hpp:46
CRS m_crs_user
Definition: projection.hpp:130
std::unique_ptr< void, ProjCRSDeleter > m_crs
Definition: projection.hpp:69
CRS(const char *crs)
Definition: projection.hpp:80
projPJ get() const
Definition: projection.hpp:91
Definition: projection.hpp:125
Definition: location.hpp:266
int m_epsg
Definition: projection.hpp:127
void operator()(void *crs)
Definition: projection.hpp:64
Coordinates operator()(osmium::Location location) const
Definition: projection.hpp:152
double lon() const
Definition: location.hpp:371
Definition: projection.hpp:61
Projection(const std::string &proj_string)
Definition: projection.hpp:134
Projection(const char *proj_string)
Definition: projection.hpp:140
int epsg() const noexcept
Definition: projection.hpp:166
double x
Definition: coordinates.hpp:48
bool is_geocent() const
Definition: projection.hpp:99
constexpr double rad_to_deg(double radians) noexcept
Convert angle from radians to degrees.
Definition: util.hpp:67