File indexing completed on 2025-01-18 09:36:41
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_GEOMETRY_SRS_EPSG_HPP
0011 #define BOOST_GEOMETRY_SRS_EPSG_HPP
0012
0013
0014 #include <boost/geometry/srs/projection.hpp>
0015 #include <boost/geometry/srs/projections/epsg.hpp>
0016 #include <boost/geometry/srs/projections/epsg_params.hpp>
0017 #include <boost/geometry/srs/projections/epsg_traits.hpp>
0018
0019
0020 namespace boost { namespace geometry
0021 {
0022
0023 namespace projections
0024 {
0025
0026 template <>
0027 struct dynamic_parameters<srs::epsg>
0028 {
0029 static const bool is_specialized = true;
0030 static inline srs::dpar::parameters<> apply(srs::epsg const& params)
0031 {
0032 return projections::detail::epsg_to_parameters(params.code);
0033 }
0034 };
0035
0036 template <int Code, typename CT>
0037 class proj_wrapper<srs::static_epsg<Code>, CT>
0038 : public proj_wrapper
0039 <
0040 typename projections::detail::epsg_traits<Code>::parameters_type,
0041 CT
0042 >
0043 {
0044 typedef projections::detail::epsg_traits<Code> epsg_traits;
0045
0046 typedef proj_wrapper
0047 <
0048 typename epsg_traits::parameters_type,
0049 CT
0050 > base_t;
0051
0052 public:
0053 proj_wrapper()
0054 : base_t(epsg_traits::parameters())
0055 {}
0056
0057 explicit proj_wrapper(srs::static_epsg<Code> const&)
0058 : base_t(epsg_traits::parameters())
0059 {}
0060 };
0061
0062 }
0063
0064
0065 }}
0066
0067
0068 #endif