From ca9fa7260d33afa1b8567f23e7943ddef829dd28 Mon Sep 17 00:00:00 2001 From: Barend Gehrels Date: Wed, 29 Apr 2015 10:51:42 +0200 Subject: [PATCH] [projections] added spheroid models skipped earlier --- .../gis/projections/proj/gn_sinu.hpp | 64 +++++++++++++++++++ .../extensions/gis/projections/proj/stere.hpp | 23 +++++++ 2 files changed, 87 insertions(+) diff --git a/include/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp b/include/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp index 329a89776..aae623eca 100644 --- a/include/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp +++ b/include/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp @@ -202,6 +202,28 @@ namespace boost { namespace geometry { namespace projections }} // namespace detail::gn_sinu #endif // doxygen + /*! + \brief General Sinusoidal Series projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - m= n= + \par Example + \image html ex_gn_sinu.gif + */ + template + struct gn_sinu_ellipsoid : public detail::gn_sinu::base_gn_sinu_ellipsoid + { + inline gn_sinu_ellipsoid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_ellipsoid(par) + { + detail::gn_sinu::setup_gn_sinu(this->m_par, this->m_proj_parm); + } + }; + /*! \brief Sinusoidal (Sanson-Flamsteed) projection \ingroup projections @@ -224,6 +246,48 @@ namespace boost { namespace geometry { namespace projections } }; + /*! + \brief Eckert VI projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck6.gif + */ + template + struct eck6_ellipsoid : public detail::gn_sinu::base_gn_sinu_ellipsoid + { + inline eck6_ellipsoid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_ellipsoid(par) + { + detail::gn_sinu::setup_eck6(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief McBryde-Thomas Flat-Polar Sinusoidal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_mbtfps.gif + */ + template + struct mbtfps_ellipsoid : public detail::gn_sinu::base_gn_sinu_ellipsoid + { + inline mbtfps_ellipsoid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_ellipsoid(par) + { + detail::gn_sinu::setup_mbtfps(this->m_par, this->m_proj_parm); + } + }; + /*! \brief General Sinusoidal Series projection \ingroup projections diff --git a/include/boost/geometry/extensions/gis/projections/proj/stere.hpp b/include/boost/geometry/extensions/gis/projections/proj/stere.hpp index a6418574f..c057db69a 100644 --- a/include/boost/geometry/extensions/gis/projections/proj/stere.hpp +++ b/include/boost/geometry/extensions/gis/projections/proj/stere.hpp @@ -407,6 +407,29 @@ namespace boost { namespace geometry { namespace projections } }; + /*! + \brief Universal Polar Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + - south + \par Example + \image html ex_ups.gif + */ + template + struct ups_spheroid : public detail::stere::base_stere_spheroid + { + inline ups_spheroid(const Parameters& par) : detail::stere::base_stere_spheroid(par) + { + detail::stere::setup_ups(this->m_par, this->m_proj_parm); + } + }; + #ifndef DOXYGEN_NO_DETAIL namespace detail {