QGeoRoutingManagerEngine 类
QGeoRoutingManagerEngine类为希望提供地理路由信息访问权限的QGeo ServiceProvider插件实现者提供了一个接口和方便的方法。更多...
头文件 | #include <QGeoRoutingManagerEngine> |
qmake | QT += location |
继承 | QObject |
公共函数
QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr) | |
虚拟 | ~QGeoRoutingManagerEngine() |
虚拟 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 |
虚拟 QGeoRouteReply * | updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) |
信号
void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
void | finished(QGeoRouteReply *reply) |
保护函数
void | setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes) |
void | setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights) |
void | setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails) |
void | 设置支持的路线优化(QGeoRouteRequest::路线优化 优化) |
void | 设置支持的路线段详细信息(QGeoRouteRequest::路线段详细信息 segmentDetails) |
void | 设置支持的旅行模式(QGeoRouteRequest::旅行模式 travelModes) |
详细说明
注意: 对于后端类没有源代码或二进制兼容性的保证。API仅保证与它开发的Qt版本一起工作。但是,API更改将只在小版本中做出。(6.6、6.7等等.)
QGeoRoutingManagerEngine的子类需要提供calculateRoute()的实现。
在默认实现中,supportsRouteUpdates()返回false,updateRoute()返回一个包含QGeoRouteReply::UnsupportedOptionError的QGeoRouteReply对象。
如果路线服务支持在旅行过程中更新路线,则子类应提供updateRoute()的实现,并在updateRoute()被调用之前某个时间点调用setSupportsRouteUpdates(true)。
setSupportsRouteUpdates()函数是配置引擎报告功能的几个函数之一。如果引擎的功能与默认值不同,应该使用这些函数,以确保报告的功能准确无误。
在进行calculateRoute()、updateRoute()或任何功能报告函数之前执行这一点非常重要,以防止出现错误或不一致的行为。
QGeoRouteManagerEngine的子类通常会使用QGeoRouteReply的子类,以便将任何引擎特定的数据(例如针对基于网络的服务QNetworkReply对象)添加到引擎使用的QGeoRouteReply实例中。
另请参阅: QGeoRoutingManager.
成员函数说明
[显式]
QGeoRoutingManagerEngine::QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
以指定的父元素创建新的引擎,使用参数将任何特定于实现的传递给引擎。
[虚函数 noexcept]
QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()
销毁本引擎。
[纯虚函数]
QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)
开始计算请求指明的路线。
将返回一个QGeoRouteReply对象,可用于管理路线操作以及返回操作的结果。
此引擎和返回的QGeoRouteReply对象将发生信号,指示操作是否完成或是否发生错误。
一旦操作完成,可以使用QGeoRouteReply::routes检索计算的路线或路线。
如果请求中包含未经此引擎支持的功能,如引擎中的方法所报告的,则将发生一个 QGeoRouteReply::UnsupportedOptionError。
用户负责删除返回的答复对象,尽管可以在连接到 QGeoRoutingManagerEngine::finished()، QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() 或 QGeoRouteReply::errorOccurred() 的槽中进行此操作,使用 deleteLater()。
[信号]
void QGeoRoutingManagerEngine::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString())
当检测到对答复的处理错误时,将发出此信号。可能随后会发出 QGeoRoutingManagerEngine::finished() 信号。
错误将由错误代码 error 描述。如果 errorString 不为空,则将包含错误的文本描述。
此信号和 QGeoRouteReply::errorOccurred() 将同时发出。
注意:不要在此信号的槽中删除 答复 对象。请使用 deleteLater()。
[信号]
void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)
当答复完成处理时,将发出此信号。
如果 reply::error() 等于 QGeoRouteReply::NoError,则处理成功完成。
此信号和 QGeoRouteReply::finished() 将同时发出。
注意:不要在此信号的槽中删除 答复 对象。请使用 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。
可以独立于区域设置测量系统。both setLocale() 和此函数都会设置测量系统。最后调用的函数所设置的值将被使用。
另请参阅measurementSystem()、locale() 和 setLocale。
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
设置此引擎在路径规划期间考虑的功能类型为 featureTypes。
对于子类使用此方法非常重要,以确保引擎正确地报告其功能。如果不使用此函数,则引擎将报告它支持没有任何功能类型。
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
将此引擎在路径规划期间可以应用的对不同功能的权重设置为 featureWeights。
对于子类使用此方法非常重要,以确保引擎正确地报告其功能。如果不使用此函数,则引擎将报告它支持没有任何功能权重。
[protected]
void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
设置此引擎支持请求的导航操纵细节级别为 maneuverDetails。
对于子类使用此方法非常重要,以确保引擎正确地报告其功能。如果不使用此函数,则引擎将报告它支持没有任何操纵细节。
[protected]
void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
设置此引擎支持的路线优化为 optimizations。
对于子类使用此方法非常重要,以确保引擎正确地报告其功能。如果不使用此函数,则引擎将报告它支持没有任何路线优化。
另请参阅supportedRouteOptimizations。
[受保护]
void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
为该引擎可以请求的路线段详细程度设置segmentDetails。
确保子类调用此方法以确保引擎能够正确报告其功能非常重要。如果此功能未使用,则引擎将报告它不支持任何路线段详细程度。
[受保护]
void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)
为此引擎支持的旅行模式设置travelModes。
确保子类调用此方法以确保引擎能够正确报告其功能非常重要。如果此功能未使用,则引擎将报告它不支持任何旅行模式。
另请参阅supportedTravelModes。
QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const
返回此引擎在路线规划期间会考虑的特征类型。
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
返回此引擎支持的旅行模式。
[虚拟]
QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
开始根据当前位置position对route进行更新处理。
将返回一个QGeoRouteReply对象,可用于管理路线操作以及返回操作的结果。
此引擎和返回的QGeoRouteReply对象将发生信号,指示操作是否完成或是否发生错误。
如果 supportsRouteUpdates() 返回 false,则会发生 QGeoRouteReply::UnsupportedOptionError。
一旦操作完成,QGeoRouteReply::routes 可以用来检索更新的路径。
返回的路径可能与原始路径完全不同,特别是在位置足够远离初始路径的情况下。否则,路径将类似,但剩余时间和距离将被更新,并且将删除已走过的原始路径段。
用户负责删除返回的答复对象,尽管可以在连接到 QGeoRoutingManagerEngine::finished()، QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() 或 QGeoRouteReply::errorOccurred() 的槽中进行此操作,使用 deleteLater()。
© 2024 The Qt Company Ltd. 本文件中的文档贡献是各自所有者的版权。本提供的文档是根据免费软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家/地区的商标。所有其他商标均为各自所有者的财产。