diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index 49821ee89..087b984f7 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -2391,17 +2391,29 @@ void ADSBDemodGUI::on_displaySettings_clicked() void ADSBDemodGUI::applyMapSettings() { + Real stationLatitude = MainCore::instance()->getSettings().getLatitude(); + Real stationLongitude = MainCore::instance()->getSettings().getLongitude(); + Real stationAltitude = MainCore::instance()->getSettings().getAltitude(); + QQuickItem *item = ui->map->rootObject(); - // Save existing position of map QObject *object = item->findChild("map"); QGeoCoordinate coords; double zoom; if (object != nullptr) { + // Save existing position of map coords = object->property("center").value(); zoom = object->property("zoomLevel").value(); } + else + { + // Center on my location when map is first opened + coords.setLatitude(stationLatitude); + coords.setLongitude(stationLongitude); + coords.setAltitude(stationAltitude); + zoom = 10.0; + } // Create the map using the specified provider QQmlProperty::write(item, "mapProvider", "osm"); @@ -2463,9 +2475,6 @@ void ADSBDemodGUI::applyMapSettings() QObject *stationObject = newMap->findChild("station"); if(stationObject != NULL) { - Real stationLatitude = MainCore::instance()->getSettings().getLatitude(); - Real stationLongitude = MainCore::instance()->getSettings().getLongitude(); - Real stationAltitude = MainCore::instance()->getSettings().getAltitude(); QGeoCoordinate coords = stationObject->property("coordinate").value(); coords.setLatitude(stationLatitude); coords.setLongitude(stationLongitude); @@ -2608,16 +2617,6 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb Real stationAltitude = MainCore::instance()->getSettings().getAltitude(); m_azEl.setLocation(stationLatitude, stationLongitude, stationAltitude); - // Centre map at My Position - QQuickItem *item = ui->map->rootObject(); - QObject *object = item->findChild("map"); - if(object != NULL) - { - QGeoCoordinate coords = object->property("center").value(); - coords.setLatitude(stationLatitude); - coords.setLongitude(stationLongitude); - object->setProperty("center", QVariant::fromValue(coords)); - } // Add airports within range of My Position if (m_airportInfo != nullptr) { updateAirports();