22using TwoDLocationModel = boost::geometry::model::point<double, 2, boost::geometry::cs::geographic<boost::geometry::degree>>;
36class TwoDLocationIterator :
37 public boost::iterator_facade<TwoDLocationIterator,
39 boost::random_access_traversal_tag,
43 TwoDLocationIterator() =
default;
44 explicit TwoDLocationIterator(
const asn1::PolygonalRegion& region, std::size_t index);
47 friend class boost::iterator_core_access;
51 void advance(std::size_t n);
52 std::ptrdiff_t distance_to(
const TwoDLocationIterator& other)
const;
53 bool equal(
const TwoDLocationIterator& other)
const;
54 TwoDLocationModel dereference()
const;
56 const asn1::PolygonalRegion* m_region =
nullptr;
57 std::size_t m_index = 0;