geographic.hpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Boost.Geometry
  2. // Copyright (c) 2025 Adam Wulkiewicz, Lodz, Poland.
  3. // Copyright (c) 2020-2021, Oracle and/or its affiliates.
  4. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
  5. // Licensed under the Boost Software License version 1.0.
  6. // http://www.boost.org/users/license.html
  7. #ifndef BOOST_GEOMETRY_STRATEGIES_INDEX_GEOGRAPHIC_HPP
  8. #define BOOST_GEOMETRY_STRATEGIES_INDEX_GEOGRAPHIC_HPP
  9. #include <boost/geometry/strategies/centroid/geographic.hpp>
  10. #include <boost/geometry/strategies/distance/geographic.hpp>
  11. #include <boost/geometry/strategies/index/services.hpp>
  12. namespace boost { namespace geometry { namespace strategies { namespace index
  13. {
  14. template
  15. <
  16. typename FormulaPolicy = strategy::andoyer,
  17. typename Spheroid = srs::spheroid<double>,
  18. typename CalculationType = void
  19. >
  20. class geographic
  21. : public distance::geographic<FormulaPolicy, Spheroid, CalculationType>
  22. , public strategies::centroid::detail::geographic
  23. {
  24. typedef distance::geographic<FormulaPolicy, Spheroid, CalculationType> base_t;
  25. public:
  26. geographic() = default;
  27. explicit geographic(Spheroid const& spheroid)
  28. : base_t(spheroid)
  29. {}
  30. };
  31. namespace services
  32. {
  33. template <typename Geometry>
  34. struct default_strategy<Geometry, geographic_tag>
  35. {
  36. using type = strategies::index::geographic<>;
  37. };
  38. } // namespace services
  39. }}}} // namespace boost::geometry::strategy::index
  40. #endif // BOOST_GEOMETRY_STRATEGIES_INDEX_GEOGRAPHIC_HPP