summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/map/transform.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index 61635d472a..45386b9dc8 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -423,7 +423,7 @@ ScreenCoordinate Transform::getScreenCoordinate(const EdgeInsets& padding) const
#pragma mark - Zoom
void Transform::scaleBy(double ds, const ScreenCoordinate& center, const Duration& duration) {
- if (std::isnan(ds)) {
+ if (std::isnan(ds) || !center) {
return;
}
@@ -463,10 +463,12 @@ void Transform::setScale(double scale, const EdgeInsets& padding, const Duration
}
void Transform::setMinZoom(const double minZoom) {
+ if (std::isnan(minZoom)) return;
state.setMinZoom(minZoom);
}
void Transform::setMaxZoom(const double maxZoom) {
+ if (std::isnan(maxZoom)) return;
state.setMaxZoom(maxZoom);
}
@@ -657,12 +659,14 @@ void Transform::setGestureInProgress(bool inProgress) {
#pragma mark Conversion and projection
ScreenCoordinate Transform::latLngToScreenCoordinate(const LatLng& latLng) const {
+ if (!latLng) return {};
ScreenCoordinate point = state.latLngToScreenCoordinate(latLng);
point.y = state.height - point.y;
return point;
}
LatLng Transform::screenCoordinateToLatLng(const ScreenCoordinate& point) const {
+ if (!point) return {};
ScreenCoordinate flippedPoint = point;
flippedPoint.y = state.height - flippedPoint.y;
return state.screenCoordinateToLatLng(flippedPoint);