diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index c80420371..c51d7e9ff 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -98,6 +98,7 @@ public: void setScale(double scale, optional = {}, const Duration& = Duration::zero()); double getScale() const; void setZoom(double zoom, const Duration& = Duration::zero()); + void setZoom(double zoom, optional, const Duration& = Duration::zero()); void setZoom(double zoom, optional, const Duration& = Duration::zero()); double getZoom() const; void setLatLngZoom(const LatLng&, double zoom, const Duration& = Duration::zero()); diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 727fdf6d4..bd69ce50f 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -537,7 +537,13 @@ double Map::getScale() const { void Map::setZoom(double zoom, const Duration& duration) { impl->cameraMutated = true; - setZoom(zoom, {}, duration); + setZoom(zoom, optional {}, duration); +} + +void Map::setZoom(double zoom, optional anchor, const Duration& duration) { + impl->cameraMutated = true; + impl->transform.setZoom(zoom, anchor, duration); + impl->onUpdate(Update::RecalculateStyle); } void Map::setZoom(double zoom, optional padding, const Duration& duration) {