Ref T111, allow to search for location in coordinate form

This commit is contained in:
Klaus Basan
2017-08-08 23:53:21 +02:00
committed by Mathew Sutcliffe
parent bb4f0e7a13
commit ccdfa8e12f
5 changed files with 30 additions and 2 deletions

View File

@@ -36,7 +36,12 @@ namespace BlackCore
CAirport CAirportDataReader::getAirportForIcaoDesignator(const QString &designator) const CAirport CAirportDataReader::getAirportForIcaoDesignator(const QString &designator) const
{ {
return getAirports().findByIcao(CAirportIcaoCode(designator)).frontOrDefault(); return getAirports().findFirstByIcao(CAirportIcaoCode(designator));
}
CAirport CAirportDataReader::getAirportForNameOrLocation(const QString &nameOrLocation) const
{
return getAirports().findFirstByNameOrLocation(nameOrLocation);
} }
int CAirportDataReader::getAirportsCount() const int CAirportDataReader::getAirportsCount() const

View File

@@ -42,6 +42,10 @@ namespace BlackCore
//! \threadsafe //! \threadsafe
BlackMisc::Aviation::CAirport getAirportForIcaoDesignator(const QString &designator) const; BlackMisc::Aviation::CAirport getAirportForIcaoDesignator(const QString &designator) const;
//! Get airports for location
//! \threadsafe
BlackMisc::Aviation::CAirport getAirportForNameOrLocation(const QString &location) const;
//! Returns a list of all airports in the database. //! Returns a list of all airports in the database.
//! \threadsafe //! \threadsafe
int getAirportsCount() const; int getAirportsCount() const;

View File

@@ -672,6 +672,12 @@ namespace BlackCore
return CAirport(); return CAirport();
} }
CAirport CWebDataServices::getAirportForNameOrLocation(const QString &nameOrLocation) const
{
if (m_airportDataReader) { return m_airportDataReader->getAirportForNameOrLocation(nameOrLocation); }
return CAirport();
}
CCountry CWebDataServices::getCountryForIsoCode(const QString &iso) const CCountry CWebDataServices::getCountryForIsoCode(const QString &iso) const
{ {
if (m_icaoDataReader) { return m_icaoDataReader->getCountryForIsoCode(iso); } if (m_icaoDataReader) { return m_icaoDataReader->getCountryForIsoCode(iso); }

View File

@@ -317,6 +317,10 @@ namespace BlackCore
//! \threadsafe //! \threadsafe
BlackMisc::Aviation::CAirport getAirportForIcaoDesignator(const QString &icao) const; BlackMisc::Aviation::CAirport getAirportForIcaoDesignator(const QString &icao) const;
//! Get airport for name of location
//! \threadsafe
BlackMisc::Aviation::CAirport getAirportForNameOrLocation(const QString &nameOrLocation) const;
//! Get METARs //! Get METARs
//! \threadsafe //! \threadsafe
BlackMisc::Weather::CMetarList getMetars() const; BlackMisc::Weather::CMetarList getMetars() const;

View File

@@ -157,16 +157,25 @@ namespace BlackGui
// location based on swift data // location based on swift data
if (sApp && sApp->hasWebDataServices()) if (sApp && sApp->hasWebDataServices())
{ {
CAirport airport;
// airport ICAO // airport ICAO
if (l.length() == 4 && sApp->getWebDataServices()->getAirportsCount() > 0) if (l.length() == 4 && sApp->getWebDataServices()->getAirportsCount() > 0)
{ {
const CAirport airport = sApp->getWebDataServices()->getAirportForIcaoDesignator(l); airport = sApp->getWebDataServices()->getAirportForIcaoDesignator(l);
if (airport.hasValidDbKey()) if (airport.hasValidDbKey())
{ {
this->setCoordinate(airport); this->setCoordinate(airport);
return; return;
} }
} }
airport = sApp->getWebDataServices()->getAirportForNameOrLocation(l);
if (airport.hasValidDbKey())
{
this->setCoordinate(airport);
return;
}
} }
} }