From 80915992ab4e970ca005009ca1175bae24cb448b Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Thu, 23 Mar 2017 18:10:16 +0200 Subject: [core] Added Map::latLngBoundsForCamera --- src/mbgl/map/map.cpp | 11 +++++++++++ src/mbgl/map/transform.hpp | 2 ++ 2 files changed, 13 insertions(+) (limited to 'src/mbgl') diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index a883a69282..9e0b1a7575 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -644,6 +644,17 @@ CameraOptions Map::cameraForLatLngs(const std::vector& latLngs, optional return options; } +LatLngBounds Map::latLngBoundsForCamera(const CameraOptions& camera) const { + Transform shallow { impl->transform.getState() }; + Size size = shallow.getState().getSize(); + + shallow.jumpTo(camera); + return LatLngBounds::hull( + shallow.screenCoordinateToLatLng({}), + shallow.screenCoordinateToLatLng({ double(size.width), double(size.height) }) + ); +} + void Map::resetZoom() { impl->cameraMutated = true; setZoom(0); diff --git a/src/mbgl/map/transform.hpp b/src/mbgl/map/transform.hpp index 087ae8e690..f11ac81287 100644 --- a/src/mbgl/map/transform.hpp +++ b/src/mbgl/map/transform.hpp @@ -22,6 +22,8 @@ public: ConstrainMode = ConstrainMode::HeightOnly, ViewportMode = ViewportMode::Default); + Transform(const TransformState &state_) : observer(MapObserver::nullObserver()), state(state_) {} + // Map view bool resize(Size size); -- cgit v1.2.1