From 10ae237b73fd64e7cf936bbcf1a1516b3bf288e4 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Thu, 16 Feb 2023 14:42:29 +0000 Subject: [PATCH] Add image zoom level for 2D image, although it isn't quite correct. --- plugins/channelrx/demodapt/aptdemodimageworker.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/channelrx/demodapt/aptdemodimageworker.cpp b/plugins/channelrx/demodapt/aptdemodimageworker.cpp index d33c11127..1b22c662d 100644 --- a/plugins/channelrx/demodapt/aptdemodimageworker.cpp +++ b/plugins/channelrx/demodapt/aptdemodimageworker.cpp @@ -706,6 +706,13 @@ void APTDemodImageWorker::sendImageToMap(QImage image) swgMapItem->setImageTileNorth(m_tileNorth); swgMapItem->setImageTileSouth(m_tileSouth); + // FIXME: This isn't correct. Possibly need to use different projection + double earthCircumference = 40075016.686; + double latitude = m_tileSouth + (m_tileNorth - m_tileSouth) / 2.0; + double scale = std::cos(Units::degreesToRadians(latitude)); + double zoom = std::log2(earthCircumference * scale * selectedChannel.width() / 2926600) - 8; + swgMapItem->setImageZoomLevel(zoom); + MainCore::MsgMapItem *msg = MainCore::MsgMapItem::create(m_aptDemod, swgMapItem); messageQueue->push(msg); }