summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/map/transform.cpp2
-rw-r--r--test/map/transform.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index b283251431..da085ac750 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -662,5 +662,5 @@ LatLng Transform::screenCoordinateToLatLng(const ScreenCoordinate& point) const
ScreenCoordinate flippedPoint = point;
flippedPoint.y = state.height - flippedPoint.y;
- return state.screenCoordinateToLatLng(flippedPoint);
+ return state.screenCoordinateToLatLng(flippedPoint).wrapped();
}
diff --git a/test/map/transform.cpp b/test/map/transform.cpp
index d26df51fd4..0567696f60 100644
--- a/test/map/transform.cpp
+++ b/test/map/transform.cpp
@@ -410,11 +410,17 @@ TEST(Transform, Antimeridian) {
ScreenCoordinate pixelWaikiriForwards = transform.latLngToScreenCoordinate(coordinateWaikiri);
ASSERT_DOUBLE_EQ(437.95953728819512, pixelWaikiriForwards.x);
ASSERT_DOUBLE_EQ(pixelWaikiri.y, pixelWaikiriForwards.y);
+ LatLng coordinateFromPixel = transform.screenCoordinateToLatLng(pixelWaikiriForwards);
+ ASSERT_NEAR(coordinateWaikiri.latitude, coordinateFromPixel.latitude, 0.000001);
+ ASSERT_NEAR(coordinateWaikiri.longitude, coordinateFromPixel.longitude, 0.000001);
transform.setLatLng({ coordinateWaikiri.latitude, -179.9787 });
ScreenCoordinate pixelWaikiriBackwards = transform.latLngToScreenCoordinate(coordinateWaikiri);
ASSERT_DOUBLE_EQ(pixelWaikiriForwards.x, pixelWaikiriBackwards.x);
ASSERT_DOUBLE_EQ(pixelWaikiriForwards.y, pixelWaikiriBackwards.y);
+ coordinateFromPixel = transform.screenCoordinateToLatLng(pixelWaikiriBackwards);
+ ASSERT_NEAR(coordinateWaikiri.latitude, coordinateFromPixel.latitude, 0.000001);
+ ASSERT_NEAR(coordinateWaikiri.longitude, coordinateFromPixel.longitude, 0.000001);
}
TEST(Transform, Camera) {