From a3bac33bf44023f55582f56bf4f069e550c402b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 4 Feb 2024 17:42:36 +0100 Subject: [PATCH] Use a more accurate and faster top left xy coordinate computation --- src/map/aqmmap.cpp | 4 ++-- src/map/gemfmap.cpp | 4 ++-- src/map/mbtilesmap.cpp | 6 +++--- src/map/onlinemap.cpp | 4 ++-- src/map/osmdroidmap.cpp | 4 ++-- src/map/sqlitemap.cpp | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/map/aqmmap.cpp b/src/map/aqmmap.cpp index b2235a8a..bc00b658 100644 --- a/src/map/aqmmap.cpp +++ b/src/map/aqmmap.cpp @@ -348,8 +348,8 @@ void AQMMap::draw(QPainter *painter, const QRectF &rect, Flags flags) qreal scale = OSM::zoom2scale(z.zoom, z.tileSize); QPoint tile = OSM::mercator2tile(QPointF(rect.topLeft().x() * scale, -rect.topLeft().y() * scale) * _mapRatio, z.zoom); - Coordinates ctl(OSM::tile2ll(tile, z.zoom)); - QPointF tl(ll2xy(Coordinates(ctl.lon(), -ctl.lat()))); + QPointF tlm(OSM::tile2mercator(tile, z.zoom)); + QPointF tl(QPointF(tlm.x() / scale, tlm.y() / scale) / _mapRatio); QSizeF s(rect.right() - tl.x(), rect.bottom() - tl.y()); int width = ceil(s.width() / tileSize()); int height = ceil(s.height() / tileSize()); diff --git a/src/map/gemfmap.cpp b/src/map/gemfmap.cpp index 3b711a2b..91797df3 100644 --- a/src/map/gemfmap.cpp +++ b/src/map/gemfmap.cpp @@ -245,8 +245,8 @@ void GEMFMap::draw(QPainter *painter, const QRectF &rect, Flags flags) qreal scale = OSM::zoom2scale(z.level, _tileSize); QPoint tile = OSM::mercator2tile(QPointF(rect.topLeft().x() * scale, -rect.topLeft().y() * scale) * _mapRatio, z.level); - Coordinates ctl(OSM::tile2ll(tile, z.level)); - QPointF tl(ll2xy(Coordinates(ctl.lon(), -ctl.lat()))); + QPointF tlm(OSM::tile2mercator(tile, z.level)); + QPointF tl(QPointF(tlm.x() / scale, tlm.y() / scale) / _mapRatio); QSizeF s(rect.right() - tl.x(), rect.bottom() - tl.y()); int width = ceil(s.width() / tileSize()); int height = ceil(s.height() / tileSize()); diff --git a/src/map/mbtilesmap.cpp b/src/map/mbtilesmap.cpp index cb9e467f..5dabf729 100644 --- a/src/map/mbtilesmap.cpp +++ b/src/map/mbtilesmap.cpp @@ -393,13 +393,13 @@ void MBTilesMap::draw(QPainter *painter, const QRectF &rect, Flags flags) { const Zoom &zoom = _zooms.at(_zi); unsigned overzoom = zoom.z - zoom.base; - unsigned f = 1U<