diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
commit | b8cf34c691623e4ec329053cbbf68522a855882d (patch) | |
tree | 34da08632a99677f6b79ecb65e5b655a5b69a67f /boost/geometry/srs/epsg.hpp | |
parent | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (diff) | |
download | boost-upstream/1.67.0.tar.gz boost-upstream/1.67.0.tar.bz2 boost-upstream/1.67.0.zip |
Imported Upstream version 1.67.0upstream/1.67.0
Diffstat (limited to 'boost/geometry/srs/epsg.hpp')
-rw-r--r-- | boost/geometry/srs/epsg.hpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/boost/geometry/srs/epsg.hpp b/boost/geometry/srs/epsg.hpp new file mode 100644 index 0000000000..0641c18611 --- /dev/null +++ b/boost/geometry/srs/epsg.hpp @@ -0,0 +1,82 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_EPSG_HPP +#define BOOST_GEOMETRY_SRS_EPSG_HPP + + +#include <boost/geometry/srs/projection.hpp> +#include <boost/geometry/srs/projections/epsg.hpp> +#include <boost/geometry/srs/projections/epsg_params.hpp> +#include <boost/geometry/srs/projections/epsg_traits.hpp> + + +namespace boost { namespace geometry +{ + +namespace projections +{ + +template <typename CT> +struct dynamic_parameters<srs::epsg, CT> +{ + static inline projections::parameters<CT> apply(srs::epsg const& params) + { + return projections::detail::pj_init_plus<CT>( + srs::dynamic(), + projections::detail::epsg_to_string(params.code), + false); + } +}; + +template <int Code, typename CT> +class proj_wrapper<srs::static_epsg<Code>, CT> + : public static_proj_wrapper_base + < + typename projections::detail::epsg_traits<Code>::static_parameters_type, + CT + > +{ + typedef projections::detail::epsg_traits<Code> epsg_traits; + typedef typename epsg_traits::static_parameters_type static_parameters_type; + typedef static_proj_wrapper_base<static_parameters_type, CT> base_t; + +public: + proj_wrapper() + : base_t(epsg_traits::s_par(), epsg_traits::par()) + {} +}; + + +} // namespace projections + + +namespace srs +{ + + +template <int Code, typename CT> +class projection<srs::static_epsg<Code>, CT> + : public projections::projection<srs::static_epsg<Code>, CT> +{ + typedef projections::projection<srs::static_epsg<Code>, CT> base_t; + +public: + projection() + {} +}; + + +} // namespace srs + + +}} // namespace boost::geometry + + +#endif // BOOST_GEOMETRY_SRS_EPSG_HPP |