diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 7dbae374a..f569a74ce 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -220,6 +220,19 @@ namespace BlackSimPlugin { if (m_myAircraft.getSituation() == situation) { return false; } m_myAircraft.setSituation(situation); + + if (m_isWeatherActivated) + { + const auto currentPosition = CCoordinateGeodetic { situation.latitude(), situation.longitude(), {0} }; + if (CWeatherScenario::isRealWeatherScenario(m_weatherScenarioSettings.get()) && + calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) + { + m_lastWeatherPosition = currentPosition; + const auto weatherGrid = CWeatherGrid { { "GLOB", currentPosition } }; + requestWeatherGrid(weatherGrid, { this, &CSimulatorEmulated::injectWeatherGrid }); + } + } + return this->updateOwnSituation(situation); }