KItinerary
locationutil.cpp
51 return JsonLd::isA<FlightReservation>(res) || JsonLd::isA<TrainReservation>(res) || JsonLd::isA<BusReservation>(res) || JsonLd::isA<TaxiReservation>(res) || JsonLd::isA<BoatReservation>(res);
172 const auto a = pow(sin(d_lat / 2.0), 2) + cos(lat1 * degToRad) * cos(lat2 * degToRad) * pow(sin(d_lon / 2.0), 2);
176 // if the character has a canonical decomposition use that and skip the combining diacritic markers following it
231 static bool isSameLocationName(const QString &lhs, const QString &rhs, LocationUtil::Accuracy accuracy)
247 if (compareSpaceCaseInsenstive(lhsNormalized, rhsNormalized) || compareSpaceCaseInsenstive(lhsNormalized, rhsTransliterated)
248 || compareSpaceCaseInsenstive(lhsTransliterated, rhsNormalized) || compareSpaceCaseInsenstive(lhsTransliterated, rhsTransliterated)) {
254 return hasCommonPrefix(lhsNormalized, rhsNormalized) || hasCommonPrefix(lhsTransliterated, rhsTransliterated);
260 bool LocationUtil::isSameLocation(const QVariant &lhs, const QVariant &rhs, LocationUtil::Accuracy accuracy)
271 // airports are large but we have no local transport there, so the distance threshold needs to be higher there
295 return lhsAddr.streetAddress() == rhsAddr.streetAddress() && lhsAddr.addressLocality() == rhsAddr.addressLocality();
300 return isSameLocationName(lhsAddr.addressLocality(), rhsAddr.addressLocality(), LocationUtil::Exact);
315 url.setPath(QString::number(geo.latitude()) + QLatin1Char(',') + QString::number(geo.longitude()));
QString::iterator begin()
void setLocality(const QString &locality)
QString number(int n, int base)
QVariant location(const QVariant &res)
Returns the location of a non-transport reservation.
Definition: locationutil.cpp:97
void setStreet(const QString &street)
int size() const const
CaseInsensitive
Definition: berelement.h:17
T value() const const
Canonical
QUrl geoUri(const QVariant &location)
Returns a geo: URI for the given location.
Definition: locationutil.cpp:308
void reserve(int size)
QString::iterator end()
qsizetype size() const const
void setScheme(const QString &scheme)
void setRegion(const QString ®ion)
bool isEmpty() const const
QVariant arrivalLocation(const QVariant &res)
Returns the arrival location of the given reservation.
Definition: locationutil.cpp:54
void push_back(QChar ch)
QVariant departureLocation(const QVariant &res)
Returns the departure location of the given reservation.
Definition: locationutil.cpp:74
PostalAddress address(const QVariant &location)
Returns the address of the given location.
Definition: locationutil.cpp:130
GeoCoordinates geo(const QVariant &location)
Returns the geo coordinates of a given location.
Definition: locationutil.cpp:118
bool isSameLocation(const QVariant &lhs, const QVariant &rhs, Accuracy accuracy=Exact)
Returns true if the given locations are the same.
Definition: locationutil.cpp:260
int distance(const GeoCoordinates &coord1, const GeoCoordinates &coord2)
Computes the distance between to geo coordinates in meters.
Definition: locationutil.cpp:158
QString transliterate(QStringView s)
Transliterate diacritics or other special characters.
Definition: stringutil.cpp:168
void setQuery(const QString &query, QUrl::ParsingMode mode)
void setPostalCode(const QString &code)
void setPath(const QString &path, QUrl::ParsingMode mode)
void setCountry(const QString &country)
int compare(const QString &other, Qt::CaseSensitivity cs) const const
@ WalkingDistance
Locations are close enough together to not need transportation.
Definition: locationutil.h:63
bool startsWith(QStringView str, Qt::CaseSensitivity cs) const const
bool isLocationChange(const QVariant &res)
Returns true if the given reservation is a location change.
Definition: locationutil.cpp:41
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 04:02:09 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 04:02:09 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.