refs #296 minor improvements in initializing and sorting CAirport and CAirportList

This commit is contained in:
Mathew Sutcliffe
2014-07-14 23:32:04 +01:00
parent 527fa8a492
commit b1ac4defdf
4 changed files with 26 additions and 0 deletions

View File

@@ -30,6 +30,13 @@ namespace BlackMisc
m_icao(icao), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit()) 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 * Convert to string
*/ */

View File

@@ -43,6 +43,9 @@ namespace BlackMisc
//! ATC station constructor //! ATC station constructor
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position); 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() //! \copydoc CValueObject::toQVariant()
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }

View File

@@ -91,5 +91,18 @@ namespace BlackMisc
return airport.calculcateDistanceAndBearingToPlane(position, updateValues) > maxDistance; 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
} // namespace } // namespace

View File

@@ -52,6 +52,9 @@ namespace BlackMisc
//! Remove if outside given radius //! Remove if outside given radius
void removeIfOutsideRange(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::PhysicalQuantities::CLength &maxDistance, bool updateDistance); 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 //! Register metadata
static void registerMetadata(); static void registerMetadata();
}; };