mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-13 07:35:41 +08:00
refs #296 minor improvements in initializing and sorting CAirport and CAirportList
This commit is contained in:
@@ -30,6 +30,13 @@ namespace BlackMisc
|
||||
m_icao(icao), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit())
|
||||
{ }
|
||||
|
||||
/*
|
||||
* Constructor
|
||||
*/
|
||||
CAirport::CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position, const QString &descriptiveName) :
|
||||
m_icao(icao), m_descriptiveName(descriptiveName), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit())
|
||||
{ }
|
||||
|
||||
/*
|
||||
* Convert to string
|
||||
*/
|
||||
|
||||
@@ -43,6 +43,9 @@ namespace BlackMisc
|
||||
//! ATC station constructor
|
||||
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position);
|
||||
|
||||
//! ATC station constructor
|
||||
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position, const QString &descriptiveName);
|
||||
|
||||
//! \copydoc CValueObject::toQVariant()
|
||||
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }
|
||||
|
||||
|
||||
@@ -91,5 +91,18 @@ namespace BlackMisc
|
||||
return airport.calculcateDistanceAndBearingToPlane(position, updateValues) > maxDistance;
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Sort by range
|
||||
*/
|
||||
void CAirportList::sortByRange(const BlackMisc::Geo::CCoordinateGeodetic &position, bool updateValues)
|
||||
{
|
||||
if (updateValues)
|
||||
{
|
||||
this->calculcateDistanceAndBearingToPlane(position);
|
||||
}
|
||||
this->sort([ & ](const CAirport &a, const CAirport &b) { return a.getDistanceToPlane() < b.getDistanceToPlane(); });
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
@@ -52,6 +52,9 @@ namespace BlackMisc
|
||||
//! Remove if outside given radius
|
||||
void removeIfOutsideRange(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::PhysicalQuantities::CLength &maxDistance, bool updateDistance);
|
||||
|
||||
//! Sort by range from a given coordinate
|
||||
void sortByRange(const BlackMisc::Geo::CCoordinateGeodetic &position, bool updateDistance);
|
||||
|
||||
//! Register metadata
|
||||
static void registerMetadata();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user