From d064cedbbef9803eed985de97785aacc01705ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sat, 5 Aug 2023 18:56:55 +0200 Subject: [PATCH] Apply the Mapsforge maps zoom levels offset Offset the Mapsforge zoom level when fetching data/rendering the tiles to get the expected data/sizes/widths for the tiles at the given zoom level. --- src/map/mapsforge/rastertile.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/map/mapsforge/rastertile.h b/src/map/mapsforge/rastertile.h index 1f912418..39ff086a 100644 --- a/src/map/mapsforge/rastertile.h +++ b/src/map/mapsforge/rastertile.h @@ -14,13 +14,16 @@ namespace Mapsforge { class RasterTile { public: + /* Mapsforge maps zoom levels are offset by one against the standard OSM + zoom levels! We decrease the zoom level internaly here when initializing + _zoom and return the propper/increased value back in zoom() */ RasterTile(const Projection &proj, const Transform &transform, const Style *style, MapData *data, int zoom, const QRect &rect, qreal ratio) : _proj(proj), _transform(transform), _style(style), - _data(data), _zoom(zoom), _rect(rect), _ratio(ratio), + _data(data), _zoom(zoom - 1), _rect(rect), _ratio(ratio), _pixmap(rect.width() * ratio, rect.height() * ratio), _valid(false) {} - int zoom() const {return _zoom;} + int zoom() const {return _zoom + 1;} QPoint xy() const {return _rect.topLeft();} const QPixmap &pixmap() const {return _pixmap;} bool isValid() const {return _valid;}