diff options
-rw-r--r-- | include/mbgl/util/geo.hpp | 7 | ||||
-rw-r--r-- | test/util/geo.test.cpp | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/mbgl/util/geo.hpp b/include/mbgl/util/geo.hpp index 6d725b102b..54a8c99fab 100644 --- a/include/mbgl/util/geo.hpp +++ b/include/mbgl/util/geo.hpp @@ -161,6 +161,13 @@ public: point.longitude() <= ne.longitude()); } + bool contains(const LatLngBounds& area) const { + return (area.ne.latitude() <= ne.latitude() && + area.sw.latitude() >= sw.latitude() && + area.ne.longitude() <= ne.longitude() && + area.sw.longitude() >= sw.longitude()); + } + bool intersects(const LatLngBounds area) const { return (area.ne.latitude() > sw.latitude() && area.sw.latitude() < ne.latitude() && diff --git a/test/util/geo.test.cpp b/test/util/geo.test.cpp index d0d01b6f88..38f29d1dd4 100644 --- a/test/util/geo.test.cpp +++ b/test/util/geo.test.cpp @@ -220,3 +220,9 @@ TEST(LatLngBounds, FromTileID) { ASSERT_DOUBLE_EQ(util::LATITUDE_MAX, bounds.north()); } } + +TEST(LatLngBounds, Contains) { + const LatLngBounds bounds( CanonicalTileID(4,2,6)); + const LatLngBounds innerBounds( CanonicalTileID(9,82,197)); + EXPECT_TRUE(bounds.contains(innerBounds)); +} |