diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-11-28 09:49:33 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-11-29 14:23:55 +0200 |
commit | 369d1f005b8c2b217c3aca3a3782efd01268bb57 (patch) | |
tree | 523b48cd03c63db78911b68ea114abc41bfef9fd /src | |
parent | c0bfa99b66ae0e47c5aede5e6084d964a2deb7d7 (diff) | |
download | qtlocation-mapboxgl-369d1f005b8c2b217c3aca3a3782efd01268bb57.tar.gz |
[core] Do not consider X axis when constraining scale
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/map/transform_state.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/heatmap_bucket.cpp | 7 |
2 files changed, 5 insertions, 9 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index 554a72cf4a..778d4bd7e7 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -375,12 +375,9 @@ void TransformState::constrain(double& scale_, double& x_, double& y_) const { return; } - const double ratioX = (rotatedNorth() ? size.height : size.width) / util::tileSize; + // Constrain scale to avoid zooming out far enough to show off-world areas on the Y axis. const double ratioY = (rotatedNorth() ? size.width : size.height) / util::tileSize; - - // Constrain minimum scale to avoid zooming out far enough to show off-world areas on the Y axis. - // If Y axis ratio is too small to be constrained, use X axis ratio instead. - scale_ = util::max(scale_, ratioY < 1.0 ? ratioX : ratioY); + scale_ = util::max(scale_, ratioY); // Constrain min/max pan to avoid showing off-world areas on the Y axis. double max_y = (scale_ * util::tileSize - (rotatedNorth() ? size.width : size.height)) / 2; diff --git a/src/mbgl/renderer/buckets/heatmap_bucket.cpp b/src/mbgl/renderer/buckets/heatmap_bucket.cpp index 1ed6064c34..ee7db9a1df 100644 --- a/src/mbgl/renderer/buckets/heatmap_bucket.cpp +++ b/src/mbgl/renderer/buckets/heatmap_bucket.cpp @@ -50,10 +50,9 @@ void HeatmapBucket::addFeature(const GeometryTileFeature& feature, auto y = point.y; // Do not include points that are outside the tile boundaries. - // Include all points in Still mode. You need to include points from - // neighbouring tiles so that they are not clipped at tile boundaries. - if ((mode == MapMode::Continuous) && - (x < 0 || x >= util::EXTENT || y < 0 || y >= util::EXTENT)) continue; + if (x < 0 || x >= util::EXTENT || y < 0 || y >= util::EXTENT) { + continue; + } if (segments.empty() || segments.back().vertexLength + vertexLength > std::numeric_limits<uint16_t>::max()) { // Move to a new segments because the old one can't hold the geometry. |