From 359d56b6f6c903cb930208262430bf5489b6b125 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 16 Aug 2018 14:02:25 +0200 Subject: [PATCH] Weather uses null altitude, https://swift-project.slack.com/archives/G7GD2UP9C/p1534378412000100 --- src/blackmisc/geo/coordinategeodetic.cpp | 5 +++++ src/blackmisc/geo/coordinategeodetic.h | 5 ++++- src/plugins/simulator/emulated/simulatoremulated.cpp | 2 +- src/plugins/simulator/fs9/simulatorfs9.cpp | 2 +- src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp | 2 +- src/plugins/simulator/xplane/simulatorxplane.cpp | 2 +- 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/blackmisc/geo/coordinategeodetic.cpp b/src/blackmisc/geo/coordinategeodetic.cpp index af4b2f8b9..5a20942f0 100644 --- a/src/blackmisc/geo/coordinategeodetic.cpp +++ b/src/blackmisc/geo/coordinategeodetic.cpp @@ -214,6 +214,11 @@ namespace BlackMisc this->setNormalVector(normalVector); } + CCoordinateGeodetic::CCoordinateGeodetic(const CLatitude &latitude, const CLongitude &longitude) : CCoordinateGeodetic(latitude, longitude, CAltitude::null()) + { + // void + } + CCoordinateGeodetic::CCoordinateGeodetic(const CLatitude &latitude, const CLongitude &longitude, const CAltitude &geodeticHeight) : m_x(latitude.cos() * longitude.cos()), m_y(latitude.cos() * longitude.sin()), diff --git a/src/blackmisc/geo/coordinategeodetic.h b/src/blackmisc/geo/coordinategeodetic.h index d404136fc..3956dcc1d 100644 --- a/src/blackmisc/geo/coordinategeodetic.h +++ b/src/blackmisc/geo/coordinategeodetic.h @@ -215,7 +215,10 @@ namespace BlackMisc //! Constructor by normal vector CCoordinateGeodetic(const std::array &normalVector); - //! Constructor by values + //! Constructor by latitude/longitude, height is null + CCoordinateGeodetic(const CLatitude &latitude, const CLongitude &longitude); + + //! Constructor by latitude/longitude/height (or altitude) CCoordinateGeodetic(const CLatitude &latitude, const CLongitude &longitude, const Aviation::CAltitude &geodeticHeight); //! Constructor by double values, but no geodetic height diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 56f837028..7a175f653 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -228,7 +228,7 @@ namespace BlackSimPlugin if (m_isWeatherActivated) { - const auto currentPosition = CCoordinateGeodetic { situation.latitude(), situation.longitude(), {0} }; + const auto currentPosition = CCoordinateGeodetic { situation.latitude(), situation.longitude() }; if (CWeatherScenario::isRealWeatherScenario(m_weatherScenarioSettings.get()) && calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) { diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index cc662a206..291d85b26 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -333,7 +333,7 @@ namespace BlackSimPlugin if (m_isWeatherActivated) { - const auto currentPosition = CCoordinateGeodetic { aircraftSituation.latitude(), aircraftSituation.longitude(), {0} }; + const auto currentPosition = CCoordinateGeodetic { aircraftSituation.latitude(), aircraftSituation.longitude() }; if (CWeatherScenario::isRealWeatherScenario(m_weatherScenarioSettings.get()) && calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) { diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index a9d8666f2..6eba88acf 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -608,7 +608,7 @@ namespace BlackSimPlugin if (m_isWeatherActivated) { - const auto currentPosition = CCoordinateGeodetic { aircraftSituation.latitude(), aircraftSituation.longitude(), {0} }; + const auto currentPosition = CCoordinateGeodetic { aircraftSituation.latitude(), aircraftSituation.longitude() }; if (CWeatherScenario::isRealWeatherScenario(m_weatherScenarioSettings.get()) && calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) { diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 44fb42942..6673aa5b6 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -233,7 +233,7 @@ namespace BlackSimPlugin if (m_isWeatherActivated) { - const auto currentPosition = CCoordinateGeodetic { situation.latitude(), situation.longitude(), {0} }; + const auto currentPosition = CCoordinateGeodetic { situation.latitude(), situation.longitude() }; if (CWeatherScenario::isRealWeatherScenario(m_weatherScenarioSettings.get()) && calculateGreatCircleDistance(m_lastWeatherPosition, currentPosition).value(CLengthUnit::mi()) > 20) {