Класс QGeoRoutingManagerEngine
Класс QGeoRoutingManagerEngine предоставляет интерфейс и удобные методы для разработчиков плагинов QGeoServiceProvider, которые хотят предоставить доступ к географической информации о маршрутизации. Подробнее...
| Заголовок: | #include <QGeoRoutingManagerEngine> |
| qmake: | QT += location |
| С тех пор: | Qt 5.6 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.6.
Открытые функции
| QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr) | |
| virtual | ~QGeoRoutingManagerEngine() |
| virtual QGeoRouteReply * | calculateRoute(const QGeoRouteRequest &request) = 0 |
| 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 |
| virtual QGeoRouteReply * | updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) |
Сигналы
| void | error(QGeoRouteReply *reply, QGeoRouteReply::Error error, QString errorString = QString()) |
| void | finished(QGeoRouteReply *reply) |
Защищенные функции
| void | setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes) |
| void | setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights) |
| void | setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails) |
| void | setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations) |
| void | setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails) |
| void | setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes) |
Подробное описание
Подклассы QGeoRoutingManagerEngine должны предоставить реализацию calculateRoute().
В реализации по умолчанию, supportsRouteUpdates() возвращает false, а updateRoute() возвращает объект QGeoRouteReply, содержащий QGeoRouteReply::UnsupportedOptionError.
Если служба маршрутизации поддерживает обновление маршрутов по мере их прохождения, подкласс должен предоставить реализацию updateRoute() и вызвать setSupportsRouteUpdates(true) в какой-то момент до вызова updateRoute().
Функция setSupportsRouteUpdates() — одна из нескольких функций, которые конфигурируют сообщенные возможности движка. Если возможности движка отличаются от значений по умолчанию, эти функции следует использовать, чтобы сообщенные возможности были точными.
Важно, чтобы это было сделано до вызова calculateRoute(), updateRoute() или любой из функций, сообщающих о возможностях, чтобы предотвратить неправильное или несогласованное поведение.
Подкласс QGeoRouteManagerEngine часто использует подкласс QGeoRouteReply во внутренней работе, чтобы добавить любые данные, специфичные для движка (такие как объект QNetworkReply для сетевых сервисов), к экземплярам QGeoRouteReply, используемым движком.
См. также QGeoRoutingManager.
Документация по функциям-членам
QGeoRoutingManagerEngine::QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
Создаёт новый движок с указанным parent, используя parameters для передачи любых данных, специфичных для реализации, в движок.
void QGeoRoutingManagerEngine::error(QGeoRouteReply *reply, QGeoRouteReply::Error error, QString errorString = QString())
Этот сигнал излучается, когда обнаружена ошибка в обработке reply. Вероятно, последует сигнал QGeoRoutingManagerEngine::finished().
Ошибка будет описана кодом ошибки error. Если errorString не пуста, она будет содержать текстовое описание ошибки.
Этот сигнал и QGeoRouteReply::error() будут излучаться одновременно.
Примечание: Не удаляйте объект reply в слоте, подключённом к этому сигналу. Используйте deleteLater() вместо этого.
void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)
Этот сигнал излучается, когда обработка reply завершена.
Если reply::error() равно QGeoRouteReply::NoError, то обработка завершилась успешно.
Этот сигнал и QGeoRouteReply::finished() будут излучаться одновременно.
Примечание: Не удаляйте объект reply в слоте, подключённом к этому сигналу. Используйте deleteLater() вместо этого.
QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()
Уничтожает этот движок.
QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)
Начинает вычисление маршрута, указанного в request.
Будет возвращён объект QGeoRouteReply, который может быть использован для управления операцией маршрутизации и для возвращения результатов операции.
END_OF_DOCUMENT_MARKERЭтот движок и возвращаемый объект QGeoRouteReply будут испускать сигналы, указывающие, завершилась ли операция или произошли ошибки.
После завершения операции, QGeoRouteReply::routes может быть использован для получения рассчитанного маршрута или маршрутов.
Если request включает функции, которые не поддерживаются этим движком, как сообщается методами в этом движке, то произойдёт QGeoRouteReply::UnsupportedOptionError.
Пользователь отвечает за удаление возвращаемого объекта ответа, хотя это можно сделать в слоте, подключенном к QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::error(), QGeoRouteReply::finished() или QGeoRouteReply::error() с помощью deleteLater().
QLocale QGeoRoutingManagerEngine::locale() const
Возвращает язык, используемый для подсказки этому менеджеру маршрутизации о том, какой язык использовать для адресов и инструкций.
См. также setLocale().
QString QGeoRoutingManagerEngine::managerName() const
Возвращает имя, используемое этой реализацией движка для отличия от реализаций, предоставленных другими плагинами.
Сочетание managerName() и managerVersion() должно быть уникальным среди реализаций плагинов.
int QGeoRoutingManagerEngine::managerVersion() const
Возвращает версию этой реализации движка.
Сочетание managerName() и managerVersion() должно быть уникальным среди реализаций плагинов.
QLocale::MeasurementSystem QGeoRoutingManagerEngine::measurementSystem() const
Возвращает систему измерения, используемую этим менеджером.
Если была вызвана setMeasurementSystem(), то значение, возвращаемое этой функцией, может отличаться от значения, возвращаемого locale().measurementSystem(). В этом случае значение, возвращаемое этой функцией, будет использоваться менеджером.
См. также setMeasurementSystem() и setLocale().
void QGeoRoutingManagerEngine::setLocale(const QLocale &locale)
Устанавливает язык, который будет использоваться этим менеджером, на locale.
Если этот менеджер маршрутизации поддерживает возвращение адресов и инструкций на разных языках, они будут возвращены на языке locale.
Используемый язык по умолчанию — системный язык, если он не установлен.
См. также locale().
void QGeoRoutingManagerEngine::setMeasurementSystem(QLocale::MeasurementSystem system)
Устанавливает систему измерения, используемую этим менеджером, на system.
Система измерения может быть установлена независимо от языка. Оба setLocale() и эта функция устанавливают систему измерения. Будет использовано значение, установленное последней вызванной функцией.
См. также measurementSystem(), locale() и setLocale().
[protected] void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
Устанавливает типы функций, которые этот движок может учитывать при планировании маршрута, на featureTypes.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких типов функций.
См. также supportedFeatureTypes().
[protected] void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
Устанавливает веса, которые этот движок может применять к различным функциям при планировании маршрута, на featureWeights.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких весов функций.
См. также supportedFeatureWeights().
[protected] void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
Устанавливает уровни детализации для маневров навигации, которые может запрашивать этот движок, на maneuverDetails.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких деталей маневров.
См. также supportedManeuverDetails().
[protected] void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
Устанавливает оптимизации маршрута, поддерживаемые этим движком, на optimizations.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких оптимизаций маршрута.
См. также supportedRouteOptimizations().
[protected] void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
Устанавливает уровни детализации для сегментов маршрута, которые может запрашивать этот движок, на segmentDetails.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких деталей сегмента.
См. также supportedSegmentDetails().
[protected] void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)
Устанавливает типы транспортных режимов, поддерживаемые этим движком, на travelModes.
Важно, чтобы подклассы использовали этот метод, чтобы убедиться, что движок правильно сообщает о своих возможностях. Если эта функция не используется, движок сообщит, что не поддерживает никаких режимов поездки.
См. также supportedTravelModes().
QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const
Возвращает типы функций, которые этот движок может учитывать при планировании маршрута.
См. также setSupportedFeatureTypes().
QGeoRouteRequest::FeatureWeights QGeoRoutingManagerEngine::supportedFeatureWeights() const
Возвращает веса, которые этот движок может применять к различным функциям при планировании маршрута.
См. также setSupportedFeatureWeights().
QGeoRouteRequest::ManeuverDetails QGeoRoutingManagerEngine::supportedManeuverDetails() const
Возвращает уровни детализации для маневров навигации, которые может запрашивать этот движок.
См. также setSupportedManeuverDetails().
QGeoRouteRequest::RouteOptimizations QGeoRoutingManagerEngine::supportedRouteOptimizations() const
Возвращает оптимизации маршрута, поддерживаемые этим движком.
См. также setSupportedRouteOptimizations().
QGeoRouteRequest::SegmentDetails QGeoRoutingManagerEngine::supportedSegmentDetails() const
Возвращает уровни детализации для сегментов маршрута, которые может запрашивать этот движок.
См. также setSupportedSegmentDetails().
QGeoRouteRequest::TravelModes QGeoRoutingManagerEngine::supportedTravelModes() const
Возвращает типы транспортных режимов, поддерживаемые этим движком.
См. также setSupportedTravelModes().
[virtual] QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
Начинает процесс обновления маршрута route на основе текущего положения position.
Будет возвращён объект QGeoRouteReply, который можно использовать для управления операцией маршрутизации и получения результатов операции.
Этот движок и возвращённый объект QGeoRouteReply будут генерировать сигналы, указывающие на завершение операции или возникновение ошибок.
Если supportsRouteUpdates() возвращает false, произойдёт ошибка QGeoRouteReply::UnsupportedOptionError.
После завершения операции, QGeoRouteReply::routes можно использовать для получения обновлённого маршрута.
Возвращённый маршрут может быть совершенно другим по сравнению с исходным маршрутом, особенно если position достаточно удалён от начального маршрута. В противном случае маршрут будет похожим, хотя оставшееся время и расстояние будут обновлены, и любые участки исходного маршрута, которые были пройдены, будут удалены.
Пользователь отвечает за удаление возвращённого объекта ответа, хотя это можно сделать в слоте, подключённом к QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::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.14/qgeoroutingmanagerengine.html