diff --git a/samples/blackmisc/sampleschangeobject.cpp b/samples/blackmisc/sampleschangeobject.cpp index 9d923a88a..3ad44632a 100644 --- a/samples/blackmisc/sampleschangeobject.cpp +++ b/samples/blackmisc/sampleschangeobject.cpp @@ -41,7 +41,7 @@ namespace BlackSample QDateTime dtUntil = dtFrom.addSecs(60 * 60); // 1 hour QDateTime dtFrom2 = dtUntil; QDateTime dtUntil2 = dtUntil.addSecs(60 * 60); - CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station1(CCallsign("eddm_twr"), CUser("123456", "Joe Doe"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil); diff --git a/samples/blackmisc/samplescontainer.cpp b/samples/blackmisc/samplescontainer.cpp index 4b163a8fa..9e91ad787 100644 --- a/samples/blackmisc/samplescontainer.cpp +++ b/samples/blackmisc/samplescontainer.cpp @@ -48,7 +48,7 @@ namespace BlackSample CFrequency freqEddmTwr(118.7, CFrequencyUnit::MHz()); CCallsign callsignEddmTwr("eddm_twr"); CCoordinateGeodetic geoPos = - CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station1(callsignEddmTwr, CUser("123456", "Joe Doe"), freqEddmTwr, geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil); diff --git a/samples/blackmisc/samplesjson.cpp b/samples/blackmisc/samplesjson.cpp index 7100d30ff..16023f1ca 100644 --- a/samples/blackmisc/samplesjson.cpp +++ b/samples/blackmisc/samplesjson.cpp @@ -63,7 +63,7 @@ namespace BlackSample qDebug() << "-------"; QDateTime dtFrom = QDateTime::currentDateTimeUtc(); QDateTime dtUntil = dtFrom.addSecs(60 * 60); // 1 hour - CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station(CCallsign("eddm_twr"), CUser("123456", "Joe Doe"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil); json = station.toJson(); diff --git a/samples/blackmiscdbus/servicetool.cpp b/samples/blackmiscdbus/servicetool.cpp index d2321b381..ffb98705e 100644 --- a/samples/blackmiscdbus/servicetool.cpp +++ b/samples/blackmiscdbus/servicetool.cpp @@ -360,7 +360,7 @@ namespace BlackSample testserviceInterface.receiveCallsign(callsign); qDebug() << "Send callsign via interface" << callsign; - CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); // Munich + CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); // Munich CAtcStation station(CCallsign("eddm_twr"), CUser("123456", "Joe Controller"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km())); @@ -370,7 +370,7 @@ namespace BlackSample // Geo // EDDF: 50° 2′ 0″ N, 8° 34′ 14″ E, 100m MSL - geoPos = CCoordinateGeodetic::fromWgs84("50° 2′ 1″ 23 N", "8° 34′ 14″ E", CLength(111, CLengthUnit::m())); + geoPos = CCoordinateGeodetic::fromWgs84("50° 2′ 1″ 23 N", "8° 34′ 14″ E", { 111, CLengthUnit::m() }); testserviceInterface.receiveGeoPosition(geoPos); qDebug() << "Send geo position" << geoPos; diff --git a/samples/blackmiscdbus/testservice.cpp b/samples/blackmiscdbus/testservice.cpp index bc061750f..6c36c3ec0 100644 --- a/samples/blackmiscdbus/testservice.cpp +++ b/samples/blackmiscdbus/testservice.cpp @@ -94,7 +94,7 @@ namespace BlackSample */ CAtcStation Testservice::getAtcStation() const { - CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); // Munich + CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); // Munich CAtcStation station(CCallsign("eddm_twr"), CUser("654321", "client"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km())); diff --git a/samples/blackmiscquantities/samplesaviation.cpp b/samples/blackmiscquantities/samplesaviation.cpp index 6ce169e2b..f586fded6 100644 --- a/samples/blackmiscquantities/samplesaviation.cpp +++ b/samples/blackmiscquantities/samplesaviation.cpp @@ -74,7 +74,7 @@ namespace BlackSample QDateTime dtFrom2 = dtUntil; QDateTime dtUntil2 = dtUntil.addSecs(60 * 60); CCoordinateGeodetic geoPos = - CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station1(CCallsign("eddm_twr"), CUser("123456", "Joe Doe"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil); diff --git a/src/blackgui/models/airportlistmodel.cpp b/src/blackgui/models/airportlistmodel.cpp index 5efe73311..5a9a517cc 100644 --- a/src/blackgui/models/airportlistmodel.cpp +++ b/src/blackgui/models/airportlistmodel.cpp @@ -32,7 +32,7 @@ namespace BlackGui this->m_columns.addColumn(CColumn("distance", CAirport::IndexRelativeDistance, new CAirspaceDistanceFormatter())); this->m_columns.addColumn(CColumn("bearing", CAirport::IndexRelativeBearing, new CAngleDegreeFormatter())); this->m_columns.addColumn(CColumn::standardString("name", CAirport::IndexDescriptiveName)); - this->m_columns.addColumn(CColumn("elevation", CAirport::IndexElevation, new CPhysiqalQuantiyFormatter(CLengthUnit::ft(), 0))); + this->m_columns.addColumn(CColumn("elevation", CAirport::IndexElevation, new CAltitudeFormatter())); this->m_columns.addColumn(CColumn("latitude", CAirport::IndexLatitude, new CLatLonFormatter())); this->m_columns.addColumn(CColumn("longitude", CAirport::IndexLatitude, new CLatLonFormatter())); diff --git a/src/blackmisc/aviation/aircraftsituation.h b/src/blackmisc/aviation/aircraftsituation.h index 6e303495c..580819a2d 100644 --- a/src/blackmisc/aviation/aircraftsituation.h +++ b/src/blackmisc/aviation/aircraftsituation.h @@ -66,7 +66,7 @@ namespace BlackMisc const BlackMisc::PhysicalQuantities::CAngle &pitch = {}, const BlackMisc::PhysicalQuantities::CAngle &bank = {}, const BlackMisc::PhysicalQuantities::CSpeed &gs = {}, - const BlackMisc::Aviation::CAltitude &groundElevation = { { 0, nullptr }, BlackMisc::Aviation::CAltitude::MeanSeaLevel }); + const BlackMisc::Aviation::CAltitude &groundElevation = { 0, nullptr }); //! Comprehensive constructor CAircraftSituation(const BlackMisc::Aviation::CCallsign &correspondingCallsign, @@ -75,7 +75,7 @@ namespace BlackMisc const BlackMisc::PhysicalQuantities::CAngle &pitch = {}, const BlackMisc::PhysicalQuantities::CAngle &bank = {}, const BlackMisc::PhysicalQuantities::CSpeed &gs = {}, - const BlackMisc::Aviation::CAltitude &groundElevation = { { 0, nullptr }, BlackMisc::Aviation::CAltitude::MeanSeaLevel }); + const BlackMisc::Aviation::CAltitude &groundElevation = { 0, nullptr }); //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const; diff --git a/src/blackmisc/aviation/airport.cpp b/src/blackmisc/aviation/airport.cpp index 611d9a4ab..9e44b887b 100644 --- a/src/blackmisc/aviation/airport.cpp +++ b/src/blackmisc/aviation/airport.cpp @@ -61,7 +61,7 @@ namespace BlackMisc { CAirport airport(json.value(prefix + "icao").toString()); airport.setDescriptiveName(json.value(prefix + "name").toString()); - airport.setElevation(CLength(json.value(prefix + "altitude").toInt(), CLengthUnit::ft())); + airport.setElevation(CAltitude(json.value(prefix + "altitude").toInt(), CLengthUnit::ft())); const CCoordinateGeodetic pos(json.value(prefix + "latitude").toDouble(), json.value(prefix + "longitude").toDouble(), 0); airport.setPosition(pos); airport.setOperating(json.value(prefix + "operating").toString() == QStringLiteral("Y")); diff --git a/src/blackmisc/aviation/airport.h b/src/blackmisc/aviation/airport.h index 819eb1f89..8a073665f 100644 --- a/src/blackmisc/aviation/airport.h +++ b/src/blackmisc/aviation/airport.h @@ -93,11 +93,11 @@ namespace BlackMisc //! Elevation //! \sa geodeticHeight - const BlackMisc::PhysicalQuantities::CLength getElevation() const { return this->geodeticHeight(); } + const BlackMisc::Aviation::CAltitude &getElevation() const { return this->geodeticHeight(); } //! Elevation //! \sa setGeodeticHeight - void setElevation(const BlackMisc::PhysicalQuantities::CLength &elevation) { return this->m_position.setGeodeticHeight(elevation); } + void setElevation(const BlackMisc::Aviation::CAltitude &elevation) { return this->m_position.setGeodeticHeight(elevation); } //! Is the airport still active? bool isOperating() const { return m_operating; } @@ -109,8 +109,7 @@ namespace BlackMisc void updateMissingParts(const CAirport &airport); //! \copydoc Geo::ICoordinateGeodetic::geodeticHeight - //! \remarks this should be used for elevation as depicted here: http://en.wikipedia.org/wiki/Altitude#mediaviewer/File:Vertical_distances.svg - const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override { return this->m_position.geodeticHeight(); } + const BlackMisc::Aviation::CAltitude &geodeticHeight() const override { return this->m_position.geodeticHeight(); } //! Valid ICAO code bool hasValidIcaoCode() const { return !this->getIcao().isEmpty(); } diff --git a/src/blackmisc/aviation/altitude.h b/src/blackmisc/aviation/altitude.h index 2641a0f1f..9c1228455 100644 --- a/src/blackmisc/aviation/altitude.h +++ b/src/blackmisc/aviation/altitude.h @@ -79,6 +79,9 @@ namespace BlackMisc //! Constructor CAltitude(double value, ReferenceDatum datum, const BlackMisc::PhysicalQuantities::CLengthUnit &unit) : CLength(value, unit), m_datum(datum) {} + //! Constructor + CAltitude(double value, const BlackMisc::PhysicalQuantities::CLengthUnit &unit) : CLength(value, unit), m_datum(MeanSeaLevel) {} + //! Altitude as string CAltitude(const QString &altitudeAsString, BlackMisc::PhysicalQuantities::CPqString::SeparatorMode mode = BlackMisc::PhysicalQuantities::CPqString::SeparatorsLocale); diff --git a/src/blackmisc/aviation/atcstation.cpp b/src/blackmisc/aviation/atcstation.cpp index af026d6b0..666e8467e 100644 --- a/src/blackmisc/aviation/atcstation.cpp +++ b/src/blackmisc/aviation/atcstation.cpp @@ -340,7 +340,7 @@ namespace BlackMisc return this->getPosition().longitude(); } - const CLength &CAtcStation::geodeticHeight() const + const CAltitude &CAtcStation::geodeticHeight() const { return this->m_position.geodeticHeight(); } diff --git a/src/blackmisc/aviation/atcstation.h b/src/blackmisc/aviation/atcstation.h index 8d5788004..dddf2df4a 100644 --- a/src/blackmisc/aviation/atcstation.h +++ b/src/blackmisc/aviation/atcstation.h @@ -236,8 +236,7 @@ namespace BlackMisc virtual BlackMisc::Geo::CLongitude longitude() const override; //! \copydoc Geo::ICoordinateGeodetic::geodeticHeight - //! \remarks this should be used for elevation as depicted here: http://en.wikipedia.org/wiki/Altitude#mediaviewer/File:Vertical_distances.svg - const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override; + const BlackMisc::Aviation::CAltitude &geodeticHeight() const override; //! \copydoc Geo::ICoordinateGeodetic::normalVector virtual QVector3D normalVector() const override; diff --git a/src/blackmisc/geo/coordinategeodetic.cpp b/src/blackmisc/geo/coordinategeodetic.cpp index 4731139c3..b9e3cb390 100644 --- a/src/blackmisc/geo/coordinategeodetic.cpp +++ b/src/blackmisc/geo/coordinategeodetic.cpp @@ -16,6 +16,7 @@ #include #include +using namespace BlackMisc::Aviation; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Math; @@ -29,7 +30,7 @@ namespace BlackMisc return s.arg(this->latitude().valueRoundedWithUnit(6, i18n)).arg(this->longitude().valueRoundedWithUnit(6, i18n)).arg(this->m_geodeticHeight.valueRoundedWithUnit(6, i18n)); } - CCoordinateGeodetic CCoordinateGeodetic::fromWgs84(const QString &latitudeWgs84, const QString &longitudeWgs84, const CLength &geodeticHeight) + CCoordinateGeodetic CCoordinateGeodetic::fromWgs84(const QString &latitudeWgs84, const QString &longitudeWgs84, const CAltitude &geodeticHeight) { CLatitude lat = CLatitude::fromWgs84(latitudeWgs84); CLongitude lon = CLongitude::fromWgs84(longitudeWgs84); @@ -189,7 +190,7 @@ namespace BlackMisc } } - CCoordinateGeodetic::CCoordinateGeodetic(CLatitude latitude, CLongitude longitude, BlackMisc::PhysicalQuantities::CLength geodeticHeight) : + CCoordinateGeodetic::CCoordinateGeodetic(CLatitude latitude, CLongitude longitude, CAltitude geodeticHeight) : m_x(latitude.cos() * longitude.cos()), m_y(latitude.cos() * longitude.sin()), m_z(latitude.sin()), diff --git a/src/blackmisc/geo/coordinategeodetic.h b/src/blackmisc/geo/coordinategeodetic.h index a8fc0e796..dacbcd5a9 100644 --- a/src/blackmisc/geo/coordinategeodetic.h +++ b/src/blackmisc/geo/coordinategeodetic.h @@ -13,6 +13,7 @@ #define BLACKMISC_COORDINATEGEODETIC_H #include "blackmisc/blackmiscexport.h" +#include "blackmisc/aviation/altitude.h" #include "blackmisc/geo/latitude.h" #include "blackmisc/geo/longitude.h" #include "blackmisc/metaclass.h" @@ -32,7 +33,9 @@ namespace BlackMisc { namespace Geo { - //! Geodetic coordinate + //! Geodetic coordinate, a position in 3D space relative to the reference geoid. + //! + //! Composed of a latitude, longitude, and height (aka altitude, aka elevation). //! \sa http://www.esri.com/news/arcuser/0703/geoid1of3.html //! \sa http://http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf (page 5) //! \sa http://en.wikipedia.org/wiki/Geodetic_datum#Vertical_datum @@ -61,10 +64,15 @@ namespace BlackMisc virtual CLongitude longitude() const = 0; //! Height, ellipsoidal or geodetic height (used in GPS) - //! This is approximately MSL (orthometric) height, aka elevation. + //! + //! This is approximately MSL (orthometric) height, aka altitude, aka elevation. + //! The terms "geodetic height", "altitude", and "elevation" are interchangable. + //! "Geodetic height" is the generic, context-free term for the vertical component of a position. + //! This is commonly called "altitude" for objects that can move freely in the vertical component. + //! By a similar convention, "elevation" is commonly used for objects that are fixed to the ground. //! \sa see http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf page 5 //! \sa http://www.esri.com/news/arcuser/0703/geoid1of3.html - virtual const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const = 0; + virtual const BlackMisc::Aviation::CAltitude &geodeticHeight() const = 0; //! Normal vector //! \note QVector3D uses floats, so don't use if double precision is needed @@ -180,7 +188,7 @@ namespace BlackMisc CCoordinateGeodetic(const QVector3D &normal) : m_x(normal.x()), m_y(normal.y()), m_z(normal.z()) {} //! Constructor by values - CCoordinateGeodetic(CLatitude latitude, CLongitude longitude, BlackMisc::PhysicalQuantities::CLength geodeticHeight); + CCoordinateGeodetic(CLatitude latitude, CLongitude longitude, BlackMisc::Aviation::CAltitude geodeticHeight); //! Constructor by double values, but no geodetic height CCoordinateGeodetic(double latitudeDegrees, double longitudeDegrees); @@ -195,7 +203,7 @@ namespace BlackMisc virtual CLongitude longitude() const override; //! \copydoc ICoordinateGeodetic::geodeticHeight - virtual const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override { return this->m_geodeticHeight; } + virtual const BlackMisc::Aviation::CAltitude &geodeticHeight() const override { return this->m_geodeticHeight; } //! \copydoc ICoordinateGeodetic::normalVector virtual QVector3D normalVector() const override; @@ -222,7 +230,7 @@ namespace BlackMisc void setLatLong(const CLatitude &latitude, const CLongitude &longitude); //! Set height (ellipsoidal or geodetic height) - void setGeodeticHeight(const BlackMisc::PhysicalQuantities::CLength &height) { this->m_geodeticHeight = height; } + void setGeodeticHeight(const BlackMisc::Aviation::CAltitude &height) { this->m_geodeticHeight = height; } //! Set normal vector void setNormalVector(const QVector3D &normal) { this->m_x = normal.x(); this->m_y = normal.y(); this->m_z = normal.z(); } @@ -231,7 +239,7 @@ namespace BlackMisc void setNormalVector(double x, double y, double z) { this->m_x = x; this->m_y = y; this->m_z = z; } //! Coordinate by WGS84 position data - static CCoordinateGeodetic fromWgs84(const QString &latitudeWgs84, const QString &longitudeWgs84, const BlackMisc::PhysicalQuantities::CLength &geodeticHeight = {}); + static CCoordinateGeodetic fromWgs84(const QString &latitudeWgs84, const QString &longitudeWgs84, const BlackMisc::Aviation::CAltitude &geodeticHeight = {}); //! \copydoc BlackMisc::Mixin::String::toQString QString convertToQString(bool i18n = false) const; @@ -240,7 +248,7 @@ namespace BlackMisc double m_x = 0; //!< normal vector double m_y = 0; //!< normal vector double m_z = 0; //!< normal vector - BlackMisc::PhysicalQuantities::CLength m_geodeticHeight { 0, nullptr }; //!< height, ellipsoidal or geodetic height + BlackMisc::Aviation::CAltitude m_geodeticHeight { 0, nullptr }; //!< height, ellipsoidal or geodetic height BLACK_METACLASS( CCoordinateGeodetic, diff --git a/src/blackmisc/simulation/simulatedaircraft.h b/src/blackmisc/simulation/simulatedaircraft.h index 1f154ef67..8ac8c0465 100644 --- a/src/blackmisc/simulation/simulatedaircraft.h +++ b/src/blackmisc/simulation/simulatedaircraft.h @@ -195,7 +195,7 @@ namespace BlackMisc virtual BlackMisc::Geo::CLongitude longitude() const override { return this->m_situation.longitude(); } //! \copydoc BlackMisc::Geo::ICoordinateGeodetic::geodeticHeight - const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override { return this->m_situation.geodeticHeight(); } + const BlackMisc::Aviation::CAltitude &geodeticHeight() const override { return this->m_situation.geodeticHeight(); } //! \copydoc BlackMisc::Geo::ICoordinateGeodetic::normalVector virtual QVector3D normalVector() const override { return this->m_situation.normalVector(); } diff --git a/src/blackmisc/simulation/xplane/navdatareference.h b/src/blackmisc/simulation/xplane/navdatareference.h index 15059b3a2..db4594bcf 100644 --- a/src/blackmisc/simulation/xplane/navdatareference.h +++ b/src/blackmisc/simulation/xplane/navdatareference.h @@ -57,7 +57,7 @@ namespace BlackMisc virtual Geo::CLatitude latitude() const override { return m_position.latitude(); } virtual Geo::CLongitude longitude() const override { return m_position.longitude(); } - virtual const PhysicalQuantities::CLength &geodeticHeight() const override { return m_position.geodeticHeight(); } + virtual const Aviation::CAltitude &geodeticHeight() const override { return m_position.geodeticHeight(); } virtual QVector3D normalVector() const override { return m_position.normalVector(); } virtual std::array normalVectorDouble() const override { return this->m_position.normalVectorDouble(); } diff --git a/src/blackmisc/testing.cpp b/src/blackmisc/testing.cpp index 0f534f4a3..6e06be914 100644 --- a/src/blackmisc/testing.cpp +++ b/src/blackmisc/testing.cpp @@ -27,6 +27,7 @@ #include using namespace BlackMisc; +using namespace BlackMisc::Aviation; using namespace BlackMisc::Geo; using namespace BlackMisc::Network; using namespace BlackMisc::PhysicalQuantities; @@ -49,7 +50,7 @@ namespace BlackMisc { // from WGS is slow, so static const (only 1 time init) // https://dev.vatsim-germany.org/issues/322#note-2 - static const CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(index, CLengthUnit::ft())); + static const CCoordinateGeodetic geoPos = CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CAltitude(index, CLengthUnit::ft())); QString cs = QString("%1_TWR").arg(index); QString usr = QString("Joe %1").arg(index); QString id = QString("00000%1").arg(index).right(6); @@ -164,11 +165,11 @@ namespace BlackMisc ); CCoordinateGeodetic c; - const CLength h(333, CLengthUnit::m()); + const CAltitude a(333, CLengthUnit::m()); for (int i = 0; i < times; i++) { int idx = (i % 5) * 2; - c = CCoordinateGeodetic::fromWgs84(wgsLatLng.at(idx), wgsLatLng.at(idx + 1), h); + c = CCoordinateGeodetic::fromWgs84(wgsLatLng.at(idx), wgsLatLng.at(idx + 1), a); } } } // namespace diff --git a/src/plugins/simulator/fscommon/fsuipc.cpp b/src/plugins/simulator/fscommon/fsuipc.cpp index 12ab43fce..4f1f84d8a 100644 --- a/src/plugins/simulator/fscommon/fsuipc.cpp +++ b/src/plugins/simulator/fscommon/fsuipc.cpp @@ -350,7 +350,7 @@ namespace BlackSimPlugin CCoordinateGeodetic position = situation.getPosition(); CLatitude lat(latitudeRaw * latCorrectionFactor, CAngleUnit::deg()); CLongitude lon(longitudeRaw * lonCorrectionFactor, CAngleUnit::deg()); - CLength groundAltitude(groundAltitudeRaw / 256.0, CLengthUnit::m()); + CAltitude groundAltitude(groundAltitudeRaw / 256.0, CLengthUnit::m()); position.setLatitude(lat); position.setLongitude(lon); position.setGeodeticHeight(groundAltitude); diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 8445da9d4..2ad7a30e4 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -364,7 +364,7 @@ namespace BlackSimPlugin using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Geo; - m_airportsInRange.push_back({ *icaoIt, { CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()), CLength(*altIt, CLengthUnit::ft()) }, *nameIt }); + m_airportsInRange.push_back({ *icaoIt, { CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()), CAltitude(*altIt, CLengthUnit::ft()) }, *nameIt }); } } diff --git a/src/swiftguistandard/swiftguistdaircraft.cpp b/src/swiftguistandard/swiftguistdaircraft.cpp index 9c69e77e7..9c81ff91f 100644 --- a/src/swiftguistandard/swiftguistdaircraft.cpp +++ b/src/swiftguistandard/swiftguistdaircraft.cpp @@ -58,7 +58,7 @@ void SwiftGuiStd::setTestPosition(const QString &wgsLatitude, const QString &wgs CCoordinateGeodetic coordinate( CLatitude::fromWgs84(wgsLatitude), CLongitude::fromWgs84(wgsLongitude), - CLength(0, CLengthUnit::m())); + CAltitude(0, CLengthUnit::m())); this->m_ownAircraft.setPosition(coordinate); this->m_ownAircraft.setAltitude(altitude); diff --git a/tests/blackcore/testreaders.cpp b/tests/blackcore/testreaders.cpp index cf10f4d87..69f1e2d7b 100644 --- a/tests/blackcore/testreaders.cpp +++ b/tests/blackcore/testreaders.cpp @@ -135,7 +135,7 @@ namespace BlackCoreTest QVERIFY2(heathrow[0].isOperating(), "Wrong airport data"); auto airports = m_airportReader->getAirports(); - airports.sortByRange(CCoordinateGeodetic(CLatitude(51.5085300, CAngleUnit::deg()), CLongitude(-0.1257400, CAngleUnit::deg()), CLength()), true); + airports.sortByRange(CCoordinateGeodetic(CLatitude(51.5085300, CAngleUnit::deg()), CLongitude(-0.1257400, CAngleUnit::deg()), CAltitude()), true); QVERIFY2(airports[0].getIcao() == CAirportIcaoCode("EGLW"), "Wrong airport data"); CApplication::processEventsFor(2500); // make sure events are processed diff --git a/tests/blackmisc/testvariantandmap.cpp b/tests/blackmisc/testvariantandmap.cpp index c7fb89f43..d4971cd2d 100644 --- a/tests/blackmisc/testvariantandmap.cpp +++ b/tests/blackmisc/testvariantandmap.cpp @@ -49,7 +49,7 @@ namespace BlackMiscTest QDateTime dtFrom2 = dtUntil; QDateTime dtUntil2 = dtUntil.addSecs(60 * 60); CCoordinateGeodetic geoPos = - CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station1(CCallsign("eddm_twr"), CUser("123456", "Joe Doe"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil); @@ -98,7 +98,7 @@ namespace BlackMiscTest QDateTime dtFrom = QDateTime::currentDateTimeUtc(); QDateTime dtUntil = dtFrom.addSecs(60 * 60); // 1 hour CCoordinateGeodetic geoPos = - CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", CLength(1487, CLengthUnit::ft())); + CCoordinateGeodetic::fromWgs84("48° 21′ 13″ N", "11° 47′ 09″ E", { 1487, CLengthUnit::ft() }); CAtcStation station1(CCallsign("eddm_twr"), CUser("123456", "Joe Doe"), CFrequency(118.7, CFrequencyUnit::MHz()), geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil);