summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-23 18:10:16 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-24 13:51:35 +0200
commit80915992ab4e970ca005009ca1175bae24cb448b (patch)
tree75cfac7d0933b77ad5e93e95471cc0b96e85ba88 /src
parente67abfbe67d7c08e90fdbd8727c4e9ed17dfa1ed (diff)
downloadqtlocation-mapboxgl-80915992ab4e970ca005009ca1175bae24cb448b.tar.gz
[core] Added Map::latLngBoundsForCamera
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/map/map.cpp11
-rw-r--r--src/mbgl/map/transform.hpp2
2 files changed, 13 insertions, 0 deletions
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<LatLng>& 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);