PySide6.QtLocation.QGeoRoutingManager¶
- class QGeoRoutingManager¶
QGeoRoutingManager
类提供了对地理路由操作的支持。更多…概要¶
方法¶
def
calculateRoute()
def
locale()
def
managerName()
def
managerVersion()
def
setLocale()
def
updateRoute()
信号¶
def
errorOccurred()
def
finished()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
calculateRoute()
和updateRoute()
方法操作QGeoRouteReply
对象,这些对象管理这些操作并报告操作结果以及可能发生的任何错误。calculateRoute()
函数用于查找遵循一组航点并匹配各种其他条件的路线(或路线)。QGeoRouteRequest
类用于指定此信息。如果 supportsRouteUpdates() 返回 true,那么
QGeoRoutingManager
支持根据位置更新来更新路线信息。这将导致旅行时间和距离估计被更新,并且任何已经经过的 QGeoRouteSegments 将从路线中移除。更新可以通过
updateRoute()
函数触发,该函数利用由QGeoPositionInfoSource发出的位置更新中的QGeoPositionInfo实例。QGeoRoutingManager
的实例可以通过routingManager()
访问。以下是使用
QGeoRoutingManager
和QGeoRouteRequests的一个小示例:class RouteHandler(QObject): Q_OBJECT # public RouteHandler(QGeoRoutingManager routingManager, QGeoCoordinate origin, QGeoCoordinate destination) { request = QGeoRouteRequest(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 not (avoidableFeatures request.avoidFeatureTypes()): # ... inform the user that the routing manager does not # provide support for avoiding tolls and/or motor pool lanes ... return reply = routingManager.calculateRoute(request) if reply.isFinished(): if reply.error() == QGeoRouteReply.NoError: routeCalculated(reply) else: routeError(reply, reply.error(), reply.errorString()) return routingManager.finished.connect( self.routeCalculated) routingManager.errorOccurred.connect( self.routeError) # private slots def routeCalculated(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 route = reply.routes().at(0) #... now we have to make use of the route ... reply.deleteLater() def routeError(reply, error, errorString): # ... inform the user that an error has occurred ... reply.deleteLater()
- calculateRoute(request)¶
- Parameters:
请求 –
QGeoRouteRequest
- Return type:
开始计算由
request
指定的路线。将返回一个
QGeoRouteReply
对象,该对象可用于管理路由操作并返回操作结果。此管理器和返回的
QGeoRouteReply
对象将发出信号,指示操作是否完成或是否发生错误。操作完成后,可以使用
routes
来检索计算出的路线或路线。如果
request
包含此管理器不支持的功能,如该管理器中的方法所报告的,则会发生UnsupportedOptionError
。用户负责删除返回的回复对象,尽管这可以在连接到
finished()
、errorOccurred()
、finished()
或errorOccurred()
的槽中使用deleteLater()来完成。- errorOccurred(reply, error[, errorString=""])¶
- Parameters:
回复 –
QGeoRouteReply
错误 –
Error
errorString – str
当在
reply
的处理过程中检测到错误时,会发出此信号。finished()
信号可能会紧随其后。错误将由错误代码
error
描述。如果errorString
不为空,它将包含错误的文本描述。此信号和
errorOccurred()
将同时发出。注意
不要删除连接到这个信号的槽中的
reply
对象。请使用deleteLater()代替。- finished(reply)¶
- Parameters:
回复 –
QGeoRouteReply
当
reply
完成处理时,会发出此信号。如果 reply::error() 等于
NoError
,则处理成功完成。此信号和
finished()
将同时发出。注意
不要删除连接到这个信号的槽中的
reply
对象。请使用deleteLater()代替。返回用于提示此路由管理器关于地址和指令使用何种语言的区域设置。
另请参阅
- managerName()¶
- Return type:
字符串
返回实现此路由管理器行为的引擎名称。
managerName() 和
managerVersion()
的组合在插件实现中应该是唯一的。- managerVersion()¶
- Return type:
整数
返回实现此例程管理器行为的引擎版本。
managerName()
和 managerVersion() 的组合在插件实现中应该是唯一的。- measurementSystem()¶
- Return type:
返回此管理器使用的测量系统。
如果已经调用了
setMeasurementSystem()
,那么此函数返回的值可能与locale()
.measurementSystem()返回的值不同。在这种情况下,此函数返回的值将是管理器所使用的值。设置此管理器使用的区域设置为
locale
。如果此路由管理器支持以不同语言返回地址和指令,它们将以
locale
的语言返回。如果未设置,使用的区域设置默认为系统区域设置。
另请参阅
- setMeasurementSystem(system)¶
- Parameters:
系统 –
MeasurementSystem
将此管理器使用的测量系统设置为
system
。测量系统可以独立于区域设置进行设置。无论是
setLocale()
还是此函数都可以设置测量系统。最后调用的函数设置的值将被使用。- supportedFeatureTypes()¶
- Return type:
FeatureType
的组合
返回此管理器在路线规划期间可以考虑的特征类型。
- supportedFeatureWeights()¶
- Return type:
返回此管理器在路线规划期间可以应用于不同特征的权重。
- supportedManeuverDetails()¶
- Return type:
返回此管理器可以请求的导航操作的详细级别。
- supportedRouteOptimizations()¶
- Return type:
返回此管理器支持的路线优化。
- supportedSegmentDetails()¶
- Return type:
返回可以使用此管理器请求的路由段的详细级别。
- supportedTravelModes()¶
- Return type:
TravelMode
的组合
返回此管理器支持的出行模式。
- updateRoute(route, position)¶
- Parameters:
route –
QGeoRoute
position –
QGeoCoordinate
- Return type:
开始根据当前位置
position
更新route
的过程。将返回一个
QGeoRouteReply
对象,该对象可用于管理路由操作并返回操作结果。此管理器和返回的
QGeoRouteReply
对象将发出信号,指示操作是否完成或是否发生错误。如果 supportsRouteUpdates() 返回 false,将会发生
UnsupportedOptionError
。操作完成后,可以使用
routes
来检索更新后的路由。返回的路线可能与原始路线完全不同,特别是如果
position
距离初始路线很远。否则,路线将相似,尽管剩余时间和距离将被更新,并且原始路线中已经经过的部分将被移除。用户负责删除返回的回复对象,尽管这可以在连接到
finished()
、errorOccurred()
、finished()
或errorOccurred()
的槽中使用deleteLater()来完成。