mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 19:35:32 +08:00
Ref T773, use closest positions for average height/elevation values
Testing with XPlane: * even in EDDF the field elevations vary from 353-368ft, which means a difference of 15ft or 4m * that means it is important to use the closest values
This commit is contained in:
committed by
Mat Sutcliffe
parent
57153d45d7
commit
ec92b6dc46
@@ -767,10 +767,10 @@ namespace BlackMisc
|
||||
return m_partsLastModified.value(callsign, -1);
|
||||
}
|
||||
|
||||
CElevationPlane CRemoteAircraftProvider::averageElevationOfNonMovingAircraft(const CAircraftSituation &reference, const CLength &range, int minValues) const
|
||||
CElevationPlane CRemoteAircraftProvider::averageElevationOfNonMovingAircraft(const CAircraftSituation &reference, const CLength &range, int minValues, int sufficientValues) const
|
||||
{
|
||||
const CAircraftSituationList situations = this->latestOnGroundProviderElevations();
|
||||
return situations.averageElevationOfTaxiingOnGroundAircraft(reference, range, minValues);
|
||||
return situations.averageElevationOfTaxiingOnGroundAircraft(reference, range, minValues, sufficientValues);
|
||||
}
|
||||
|
||||
bool CRemoteAircraftProvider::testAddAltitudeOffset(const CCallsign &callsign, const CLength &offset)
|
||||
|
||||
@@ -251,7 +251,7 @@ namespace BlackMisc
|
||||
//! Average elevation of aircraft in given range, which are NOT moving
|
||||
//! \remark can be used to anticipate field elevation
|
||||
//! \threadsafe
|
||||
virtual Geo::CElevationPlane averageElevationOfNonMovingAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues = 1) const = 0;
|
||||
virtual Geo::CElevationPlane averageElevationOfNonMovingAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues = 1, int sufficientValues = 2) const = 0;
|
||||
|
||||
//! Connect signals to slot receiver. As the interface is no QObject, slots can not be connected directly.
|
||||
//! In order to disconnect a list of connections is provided, which have to be disconnected manually.
|
||||
@@ -344,7 +344,7 @@ namespace BlackMisc
|
||||
virtual int aircraftPartsAdded() const override;
|
||||
virtual qint64 situationsLastModified(const Aviation::CCallsign &callsign) const override;
|
||||
virtual qint64 partsLastModified(const Aviation::CCallsign &callsign) const override;
|
||||
virtual Geo::CElevationPlane averageElevationOfNonMovingAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues = 1) const override;
|
||||
virtual Geo::CElevationPlane averageElevationOfNonMovingAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues = 1, int sufficientValues = 2) const override;
|
||||
virtual QList<QMetaObject::Connection> connectRemoteAircraftProviderSignals(
|
||||
QObject *receiver,
|
||||
std::function<void(const Aviation::CAircraftSituation &)> addedSituationSlot,
|
||||
|
||||
@@ -167,10 +167,10 @@ namespace BlackMisc
|
||||
return m_elvCoordinatesGnd;
|
||||
}
|
||||
|
||||
CElevationPlane ISimulationEnvironmentProvider::averageElevationOfOnGroundAircraft(const CAircraftSituation &reference, const CLength &range, int minValues) const
|
||||
CElevationPlane ISimulationEnvironmentProvider::averageElevationOfOnGroundAircraft(const CAircraftSituation &reference, const CLength &range, int minValues, int sufficientValues) const
|
||||
{
|
||||
const CCoordinateGeodeticList coordinates = this->getElevationCoordinatesOnGround();
|
||||
return coordinates.averageGeodeticHeight(reference, range, CAircraftSituationChange::allowedAltitudeDeviation(), minValues);
|
||||
return coordinates.averageGeodeticHeight(reference, range, CAircraftSituationChange::allowedAltitudeDeviation(), minValues, sufficientValues);
|
||||
}
|
||||
|
||||
CAltitude ISimulationEnvironmentProvider::highestElevation() const
|
||||
@@ -592,10 +592,10 @@ namespace BlackMisc
|
||||
return this->provider()->findClosestElevationWithinRangeOrRequest(reference, range, callsign);
|
||||
}
|
||||
|
||||
CElevationPlane CSimulationEnvironmentAware::averageElevationOfOnGroundAircraft(const CAircraftSituation &reference, const CLength &range, int minValues) const
|
||||
CElevationPlane CSimulationEnvironmentAware::averageElevationOfOnGroundAircraft(const CAircraftSituation &reference, const CLength &range, int minValues, int sufficientValues) const
|
||||
{
|
||||
if (!this->hasProvider()) { return CElevationPlane::null(); }
|
||||
return this->provider()->averageElevationOfOnGroundAircraft(reference, range, minValues);
|
||||
return this->provider()->averageElevationOfOnGroundAircraft(reference, range, minValues, sufficientValues);
|
||||
}
|
||||
|
||||
CAltitude CSimulationEnvironmentAware::highestElevation() const
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace BlackMisc
|
||||
|
||||
//! Average elevation of "on ground" cached values
|
||||
//! \threadsafe
|
||||
Geo::CElevationPlane averageElevationOfOnGroundAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues) const;
|
||||
Geo::CElevationPlane averageElevationOfOnGroundAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues, int sufficientValues) const;
|
||||
|
||||
//! Highest elevation
|
||||
//! \threadsafe
|
||||
@@ -298,7 +298,7 @@ namespace BlackMisc
|
||||
Geo::CElevationPlane findClosestElevationWithinRangeOrRequest(const Geo::ICoordinateGeodetic &reference, const PhysicalQuantities::CLength &range, const Aviation::CCallsign &callsign);
|
||||
|
||||
//! \copydoc ISimulationEnvironmentProvider::averageElevationOfOnGroundAircraft
|
||||
Geo::CElevationPlane averageElevationOfOnGroundAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues) const;
|
||||
Geo::CElevationPlane averageElevationOfOnGroundAircraft(const Aviation::CAircraftSituation &reference, const PhysicalQuantities::CLength &range, int minValues, int sufficientValues) const;
|
||||
|
||||
//! \copydoc ISimulationEnvironmentProvider::highestElevation
|
||||
Aviation::CAltitude highestElevation() const;
|
||||
|
||||
Reference in New Issue
Block a user