summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-04-26 13:12:17 +0300
committerAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-04-26 13:34:20 +0300
commit3efffbb4ed9e7dd2baf0d859a5abfa1b2768bb57 (patch)
tree89aecfd05c3011fbb08b18e2e4cb87f96867d7b6
parent01a2a79b2c9af05d93febaf2d6510e116a706d96 (diff)
downloadqtlocation-mapboxgl-upstream/astojilj-redundant-transform.tar.gz
Refactor: redundant project-unproject in easeToupstream/astojilj-redundant-transform
Trivial change in easeTo: since project and unproject use startScale, no need for it: interpolate geon coords instead.
-rw-r--r--src/mbgl/map/transform.cpp7
-rw-r--r--test/map/transform.test.cpp2
2 files changed, 3 insertions, 6 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index e97f0da3f1..f2dd8b359c 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -107,9 +107,6 @@ void Transform::easeTo(const CameraOptions& camera, const AnimationOptions& anim
}
}
- const Point<double> startPoint = Projection::project(startLatLng, state.scale);
- const Point<double> endPoint = Projection::project(latLng, state.scale);
-
ScreenCoordinate center = getScreenCoordinate(padding);
center.y = state.size.height - center.y;
@@ -132,8 +129,8 @@ void Transform::easeTo(const CameraOptions& camera, const AnimationOptions& anim
state.rotating = bearing != startBearing;
startTransition(camera, animation, [=](double t) {
- Point<double> framePoint = util::interpolate(startPoint, endPoint, t);
- LatLng frameLatLng = Projection::unproject(framePoint, startScale);
+ LatLng frameLatLng(util::interpolate(startLatLng.latitude(), latLng.latitude(), t),
+ util::interpolate(startLatLng.longitude(), latLng.longitude(), t));
double frameScale = util::interpolate(startScale, scale, t);
state.setLatLngZoom(frameLatLng, state.scaleZoom(frameScale));
diff --git a/test/map/transform.test.cpp b/test/map/transform.test.cpp
index 33d325dfb2..520220e34e 100644
--- a/test/map/transform.test.cpp
+++ b/test/map/transform.test.cpp
@@ -371,7 +371,7 @@ TEST(Transform, Antimeridian) {
transform.jumpTo(CameraOptions().withCenter(coordinateWaikiri).withZoom(10.0));
ScreenCoordinate pixelWaikiri = transform.latLngToScreenCoordinate(coordinateWaikiri);
ASSERT_DOUBLE_EQ(500, pixelWaikiri.x);
- ASSERT_DOUBLE_EQ(500, pixelWaikiri.y);
+ ASSERT_NEAR(500, pixelWaikiri.y, 1e-10);
transform.jumpTo(CameraOptions().withCenter(LatLng { coordinateWaikiri.latitude(), 180.0213 }));
ScreenCoordinate pixelWaikiriLongest = transform.latLngToScreenCoordinate(coordinateWaikiri);