diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-03-23 18:10:16 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-03-24 13:51:35 +0200 |
commit | 80915992ab4e970ca005009ca1175bae24cb448b (patch) | |
tree | 75cfac7d0933b77ad5e93e95471cc0b96e85ba88 /src | |
parent | e67abfbe67d7c08e90fdbd8727c4e9ed17dfa1ed (diff) | |
download | qtlocation-mapboxgl-80915992ab4e970ca005009ca1175bae24cb448b.tar.gz |
[core] Added Map::latLngBoundsForCamera
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/map/map.cpp | 11 | ||||
-rw-r--r-- | src/mbgl/map/transform.hpp | 2 |
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); |