From f73beb5913403327914c5a9261c2ba5c8ce19f70 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Fri, 11 Mar 2016 02:38:48 +0200 Subject: [core] Fix screen coordinates when crossing the antimeridian (#2) Added missing case. Really fixes #4155 this time. --- test/map/transform.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test') diff --git a/test/map/transform.cpp b/test/map/transform.cpp index 6b9e960fe6..b7cf6e0a2c 100644 --- a/test/map/transform.cpp +++ b/test/map/transform.cpp @@ -318,4 +318,20 @@ TEST(Transform, Antimeridian) { ScreenCoordinate pixelSFForwards = transform.latLngToScreenCoordinate(coordinateSanFrancisco); ASSERT_DOUBLE_EQ(pixelSFBackwards.x, pixelSFForwards.x); ASSERT_DOUBLE_EQ(pixelSFBackwards.y, pixelSFForwards.y); + + const LatLng coordinateWaikiri{ -16.9310, 179.9787 }; + transform.setLatLngZoom(coordinateWaikiri, 10); + ScreenCoordinate pixelWaikiri = transform.latLngToScreenCoordinate(coordinateWaikiri); + ASSERT_DOUBLE_EQ(500.00000000007759, pixelWaikiri.x); + ASSERT_DOUBLE_EQ(500, pixelWaikiri.y); + + transform.setLatLng({ coordinateWaikiri.latitude, 180.0213 }); + ScreenCoordinate pixelWaikiriForwards = transform.latLngToScreenCoordinate(coordinateWaikiri); + ASSERT_DOUBLE_EQ(437.95953728819512, pixelWaikiriForwards.x); + ASSERT_DOUBLE_EQ(pixelWaikiri.y, pixelWaikiriForwards.y); + + 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); } -- cgit v1.2.1