diff options
author | Aleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com> | 2019-08-23 12:04:32 +0300 |
---|---|---|
committer | Aleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com> | 2019-08-23 16:43:05 +0300 |
commit | 9eff849c743c6e861404a2c39afa53c4eecdca3d (patch) | |
tree | 6c6eaaaf5f29b1570e3fc00aa5fb9ab16bedb7da /src/mbgl/util/tile_coordinate.hpp | |
parent | 13d2667035f8e5d8319556a275bb60093e24130d (diff) | |
download | qtlocation-mapboxgl-9eff849c743c6e861404a2c39afa53c4eecdca3d.tar.gz |
[core] Fix tileCover / TileCoordinate fromScreenCoordinate(#15442)
Remove unecessary tile coordinate unproject -> project step.
Unproject+project isn't always a noop and this was the issue leading to wrong cover calculation in high pitch values.
Fixes: https://github.com/mapbox/mapbox-gl-native/issues/15442
Diffstat (limited to 'src/mbgl/util/tile_coordinate.hpp')
-rw-r--r-- | src/mbgl/util/tile_coordinate.hpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mbgl/util/tile_coordinate.hpp b/src/mbgl/util/tile_coordinate.hpp index b6bdc5f590..6d78804947 100644 --- a/src/mbgl/util/tile_coordinate.hpp +++ b/src/mbgl/util/tile_coordinate.hpp @@ -13,6 +13,7 @@ using TileCoordinatePoint = Point<double>; // Has floating point x/y coordinates. // Used for computing the tiles that need to be visible in the viewport. +// In mapbox-gl-js, this is named MercatorCoordinate. class TileCoordinate { public: TileCoordinatePoint p; @@ -23,8 +24,8 @@ public: return { Projection::project(latLng, scale) / util::tileSize, zoom }; } - static TileCoordinate fromScreenCoordinate(const TransformState& state, double zoom, const ScreenCoordinate& screenCoordinate) { - return fromLatLng(zoom, state.screenCoordinateToLatLng(screenCoordinate)); + static TileCoordinate fromScreenCoordinate(const TransformState& state, uint8_t zoom, const ScreenCoordinate& screenCoordinate) { + return state.screenCoordinateToTileCoordinate(screenCoordinate, zoom); } TileCoordinate zoomTo(double zoom) const { |