Spec-Zone.ru › Qt 5.9

Класс QGeoRoutingManager

Класс QGeoRoutingManager предоставляет поддержку географических маршрутных операций. Подробнее...

Заголовок: #include <QGeoRoutingManager>
qmake: QT += location
С момента: Qt 5.6
Наследует: QObject
  • Список всех членов, включая унаследованные

Открытые функции

~QGeoRoutingManager()
QGeoRouteReply * calculateRoute(const QGeoRouteRequest &request)
QLocale locale() const
QString managerName() const
int managerVersion() const
QLocale::MeasurementSystem measurementSystem() const
void setLocale(const QLocale &locale)
void setMeasurementSystem(QLocale::MeasurementSystem system)
QGeoRouteRequest::FeatureTypes supportedFeatureTypes() const
QGeoRouteRequest::FeatureWeights supportedFeatureWeights() const
QGeoRouteRequest::ManeuverDetails supportedManeuverDetails() const
QGeoRouteRequest::RouteOptimizations supportedRouteOptimizations() const
QGeoRouteRequest::SegmentDetails supportedSegmentDetails() const
QGeoRouteRequest::TravelModes supportedTravelModes() const
QGeoRouteReply * updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
  • 32 открытых функции унаследованные от QObject

Сигналы

void error(QGeoRouteReply *reply, QGeoRouteReply::Error error, QString errorString = QString())
void finished(QGeoRouteReply *reply)
  • 2 сигнала унаследованные от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 11 статические открытые члены, унаследованные от QObject
  • 9 защищенные функции, унаследованные от QObject

Подробное описание

Класс QGeoRoutingManager предоставляет поддержку географических маршрутных операций.

Методы calculateRoute() и updateRoute() работают с объектами QGeoRouteReply, которые управляют этими операциями и сообщают о результате операций и любых возникших ошибках.

Функция calculateRoute() используется для поиска маршрута (или маршрутов), который следует по заданным точкам и соответствует различным другим критериям. Для указания этой информации используется класс QGeoRouteRequest.

Если функция supportsRouteUpdates() возвращает true, то QGeoRoutingManager поддерживает обновление информации о маршруте на основе обновлений позиции. Это приведет к обновлению оценок времени и расстояния в пути и удалению всех уже пройденных QGeoRouteSegments из маршрута.

Обновления могут быть вызваны функцией updateRoute(), которая использует экземпляры QGeoPositionInfo, испускаемые как обновления позиции QGeoPositionInfoSource.

К экземплярам QGeoRoutingManager можно получить доступ с помощью QGeoServiceProvider::routingManager().

Следующий небольшой пример демонстрирует использование QGeoRoutingManager и QGeoRouteRequests:

class MyRouteHandler : public QObject
{
    Q_OBJECT
public:
    MyRouteHandler(QGeoRoutingManager *routingManager,
                   const QGeoCoordinate &origin,
                   const QGeoCoordinate &destination) {

        QGeoRouteRequest request(origin, destination);

        // The request defaults to the fastest route by car, which is
        // equivalent to:
        // request.setTravelMode(QGeoRouteRequest::CarTravel);
        // request.setRouteOptimization(QGeoRouteRequest::FastestRoute);

        request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidTolls);
        request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidMotorPoolLanes);

        QGeoRouteRequest::AvoidFeaturesTypes avoidableFeatures = routingManager->supportedAvoidFeatureTypes();

        if (!(avoidableFeatures & request.avoidFeatureTypes())) {
            // ... inform the user that the routing manager does not
            // provide support for avoiding tolls and/or motor pool lanes ...
            return;
        }

        QGeoRouteReply *reply = routingManager->calculateRoute(request);

        if (reply->isFinished()) {
            if (reply->error() == QGeoRouteReply::NoError) {
                routeCalculated(reply);
            } else {
                routeError(reply, reply->error(), reply->errorString());
            }
            return;
        }

        connect(routingManager,
                SIGNAL(finished(QGeoRouteReply*)),
                this,
                SLOT(routeCalculated(QGeoRouteReply*)));

        connect(routingManager,
                SIGNAL(error(QGeoRouteReply*,QGeoRouteReply::Error,QString)),
                this,
                SLOT(routeError(QGeoRouteReply*,QGeoRouteReply::Error,QString)));
    }

private slots:
    void routeCalculated(QGeoRouteReply *reply)
    {
        // A route request can ask for several alternative routes ...
        if (reply->routes().size() != 0) {

            // ... but by default it will only get a single route
            QGeoRoute route = reply->routes().at(0);

            //... now we have to make use of the route ...
        }

        reply->deleteLater();
    }

    void routeError(QGeoRouteReply *reply, QGeoRouteReply:Error error, const QString &errorString)
    {
        // ... inform the user that an error has occurred ...
        reply->deleteLater();
    }
};

Документация по функциям-членам

QGeoRoutingManager::~QGeoRoutingManager()

Удаляет этот менеджер.

QGeoRouteReply *QGeoRoutingManager::calculateRoute(const QGeoRouteRequest &request)

Начинает вычисление маршрута, указанного в request.

Будет возвращен объект QGeoRouteReply, который можно использовать для управления операцией маршрутизации и получения результатов операции.

Этот менеджер и возвращенный объект QGeoRouteReply будут испускать сигналы, указывающие, завершилась ли операция или произошли ошибки.

После завершения операции с помощью QGeoRouteReply::routes можно получить рассчитанный маршрут или маршруты.

Если request включает функции, которые не поддерживаются этим менеджером, как указано методами в этом менеджере, то произойдет ошибка QGeoRouteReply::UnsupportedOptionError.

Пользователь отвечает за удаление возвращенного объекта reply, хотя это можно сделать в слоте, подключенном к QGeoRoutingManager::finished(), QGeoRoutingManager::error(), QGeoRouteReply::finished() или QGeoRouteReply::error() с помощью deleteLater().

[signal] void QGeoRoutingManager::error(QGeoRouteReply *reply, QGeoRouteReply::Error error, QString errorString = QString())

Этот сигнал испускается, когда при обработке reply была обнаружена ошибка. Вероятно, последует сигнал QGeoRoutingManager::finished().

Ошибка будет описана кодом ошибки error. Если errorString не пустое, оно будет содержать текстовое описание ошибки.

Этот сигнал и QGeoRouteReply::error() будут испущены одновременно.

Примечание: Не удаляйте объект reply в слоте, подключенном к этому сигналу. Используйте deleteLater() вместо этого.

[signal] void QGeoRoutingManager::finished(QGeoRouteReply *reply)

Этот сигнал испускается, когда обработка reply завершена.

Если reply::error() равно QGeoRouteReply::NoError, обработка завершилась успешно.

Этот сигнал и QGeoRouteReply::finished() будут испущены одновременно.

Примечание: Не удаляйте объект reply в слоте, подключенном к этому сигналу. Используйте deleteLater() вместо этого.

QLocale QGeoRoutingManager::locale() const

Возвращает используемый locale, чтобы указать этому маршрутному менеджеру язык для адресов и инструкций.

См. также setLocale().

QString QGeoRoutingManager::managerName() const

Возвращает имя движка, реализующего поведение этого маршрутного менеджера.

Комбинация managerName() и managerVersion() должна быть уникальной среди реализаций плагинов.

int QGeoRoutingManager::managerVersion() const

Возвращает версию движка, реализующего поведение этого маршрутного менеджера.

Комбинация managerName() и managerVersion() должна быть уникальной среди реализаций плагинов.

QLocale::MeasurementSystem QGeoRoutingManager::measurementSystem() const

Возвращает используемую системой мер.

Если был вызван setMeasurementSystem(), то значение, возвращаемое этой функцией, может отличаться от значения, возвращаемого функцией locale().measurementSystem(). В этом случае значение, возвращаемое этой функцией, будет использоваться менеджером.

См. также setMeasurementSystem() и setLocale().

void QGeoRoutingManager::setLocale(const QLocale &locale)

Устанавливает используемый локаль для данного менеджера в locale.

Если этот менеджер маршрутизации поддерживает возвращение адресов и инструкций на разных языках, они будут возвращаться на языке locale.

По умолчанию используется системная локаль, если она не установлена.

См. также locale().

void QGeoRoutingManager::setMeasurementSystem(QLocale::MeasurementSystem system)

Устанавливает используемую систему мер для этого менеджера в system.

Систему мер можно установить независимо от локали. Обе функции setLocale() и эта функция устанавливают систему мер. Будет использовано значение, установленное последней вызванной функцией.

См. также measurementSystem(), locale() и setLocale().

QGeoRouteRequest::FeatureTypes QGeoRoutingManager::supportedFeatureTypes() const

Возвращает типы объектов, которые этот менеджер может учитывать при планировании маршрута.

QGeoRouteRequest::FeatureWeights QGeoRoutingManager::supportedFeatureWeights() const

Возвращает весовые коэффициенты, которые этот менеджер может применять к различным объектам при планировании маршрута.

QGeoRouteRequest::ManeuverDetails QGeoRoutingManager::supportedManeuverDetails() const

Возвращает уровни детализации для маневров навигации, которые может запросить этот менеджер.

QGeoRouteRequest::RouteOptimizations QGeoRoutingManager::supportedRouteOptimizations() const

Возвращает оптимизации маршрутов, поддерживаемые этим менеджером.

QGeoRouteRequest::SegmentDetails QGeoRoutingManager::supportedSegmentDetails() const

Возвращает уровни детализации для сегментов маршрута, которые могут быть запрошены с помощью этого менеджера.

QGeoRouteRequest::TravelModes QGeoRoutingManager::supportedTravelModes() const

Возвращает поддерживаемые этим менеджером режимы перемещения.

QGeoRouteReply *QGeoRoutingManager::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)

Начинает процесс обновления route на основе текущего положения position.

Будет возвращен объект QGeoRouteReply, который можно использовать для управления операцией маршрутизации и для возврата результатов операции.

Этот менеджер и возвращаемый объект QGeoRouteReply будут излучать сигналы, указывающие на завершение операции или возникновение ошибок.

Если функция supportsRouteUpdates() возвращает false, произойдет ошибка QGeoRouteReply::UnsupportedOptionError.

После завершения операции можно использовать QGeoRouteReply::routes для получения обновленного маршрута.

Возвращаемый маршрут может полностью отличаться от исходного, особенно если position находится далеко от начального маршрута. В противном случае маршрут будет похожим, хотя оставшееся время и расстояние будут обновлены, а любые сегменты исходного маршрута, которые уже пройдены, будут удалены.

Пользователь отвечает за удаление возвращаемого объекта ответа, хотя это можно сделать в слоте, подключенном к QGeoRoutingManager::finished(), QGeoRoutingManager::error(), QGeoRouteReply::finished() или QGeoRouteReply::error() с помощью deleteLater().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qgeoroutingmanager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API