Go to the documentation of this file.
3 #include <lanelet2_core/primitives/Point.h>
24 using Ptr = std::shared_ptr<Projector>;
47 namespace projection {
58 const auto scale = std::cos(
origin().position.lat * M_PI / 180.0);
59 const double x{scale *
p.lon * M_PI *
EarthRadius / 180.0};
60 const double y{scale *
EarthRadius * std::log(std::tan((90.0 +
p.lat) * M_PI / 360.0))};
65 const double scale = std::cos(
origin().position.lat * M_PI / 180.0);
66 const double lon =
p.x() * 180.0 / (M_PI *
EarthRadius * scale);
67 const double lat = 360.0 * std::atan(std::exp(
p.y() / (
EarthRadius * scale))) / M_PI - 90.0;
68 return {lat, lon,
p.z()};
Eigen::Vector3d BasicPoint3d
const Origin & origin() const
Obtain the internal origin.
GPSPoint reverse(const BasicPoint3d &p) const override
Project a point from local coordinates to global lat/lon coordinates.
projection::SphericalMercatorProjector DefaultProjector
std::shared_ptr< Projector > Ptr
Projector & operator=(Projector &&rhs) noexcept=default
virtual ~Projector() noexcept=default
implements a simple spherical mercator projection.
static constexpr double EarthRadius
BasicPoint3d forward(const GPSPoint &p) const override
Project a point from lat/lon coordinates to a local coordinate system.
Projector(Origin origin=Origin::defaultOrigin())
virtual BasicPoint3d forward(const GPSPoint &p) const =0
Project a point from lat/lon coordinates to a local coordinate system.
DefaultProjector defaultProjection(Origin origin=Origin::defaultOrigin())
virtual GPSPoint reverse(const BasicPoint3d &p) const =0
Project a point from local coordinates to global lat/lon coordinates.
Origin(const GPSPoint &position)
static Origin defaultOrigin()
bool isDefault
The position of the origin.
lanelet2_io
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:26:03