QGeoRouteRequest Class

QGeoRouteRequest 类表示定义路由信息请求的参数和限制。更多

Header: #include <QGeoRouteRequest>
qmake: QT += location

公共类型

enum FeatureType { NoFeature, TollFeature, HighwayFeature, PublicTransitFeature, FerryFeature, …, TrafficFeature }
flags FeatureTypes
enum FeatureWeight { NeutralFeatureWeight, PreferFeatureWeight, RequireFeatureWeight, AvoidFeatureWeight, DisallowFeatureWeight }
flags FeatureWeights
enum ManeuverDetail { NoManeuvers, BasicManeuvers }
flags ManeuverDetails
enum RouteOptimization { ShortestRoute, FastestRoute, MostEconomicRoute, MostScenicRoute }
flags RouteOptimizations
enum SegmentDetail { NoSegmentData, BasicSegmentData }
flags SegmentDetails
enum TravelMode { CarTravel, PedestrianTravel, BicycleTravel, PublicTransitTravel, TruckTravel }
flags TravelModes

公共函数

QGeoRouteRequest(const QList<QGeoCoordinate> &waypoints = QList<QGeoCoordinate>())
QGeoRouteRequest(const QGeoCoordinate &origin, const QGeoCoordinate &destination)
QGeoRouteRequest(const QGeoRouteRequest &other)
~QGeoRouteRequest()
QDateTime departureTime() const
QList<QGeoRectangle> excludeAreas() const
QList<QGeoRouteRequest::FeatureType> featureTypes() const
QGeoRouteRequest::FeatureWeight featureWeight(QGeoRouteRequest::FeatureType featureType) const
QGeoRouteRequest::ManeuverDetail maneuverDetail() const
int numberAlternativeRoutes() const
QGeoRouteRequest::RouteOptimizations routeOptimization() const
QGeoRouteRequest::SegmentDetail segmentDetail() const
void setDepartureTime(const QDateTime &departureTime)
void setExcludeAreas(const QList<QGeoRectangle> &areas)
void setFeatureWeight(QGeoRouteRequest::FeatureType featureType, QGeoRouteRequest::FeatureWeight featureWeight)
void setManeuverDetail(QGeoRouteRequest::ManeuverDetail maneuverDetail)
void setNumberAlternativeRoutes(int alternatives)
void setRouteOptimization(QGeoRouteRequest::RouteOptimizations optimization)
void setSegmentDetail(QGeoRouteRequest::SegmentDetail segmentDetail)
void setTravelModes(QGeoRouteRequest::TravelModes travelModes)
void setWaypoints(const QList<QGeoCoordinate> &waypoints)
QGeoRouteRequest::TravelModes travelModes() const
QList<QGeoCoordinate> waypoints() const
QGeoRouteRequest &operator=(const QGeoRouteRequest &other)
bool operator!=(const QGeoRouteRequest &lhs, const QGeoRouteRequest &rhs)
bool operator==(const QGeoRouteRequest &lhs, const QGeoRouteRequest &rhs)

详细说明

QGeoRouteRequest 实例的默认状态是请求基本路线段和导航操作,描述覆盖给定航点的最快汽车路线。

不同的路由信息提供商所支持的功能可能存在很大差异,如果使用不同级别的授权,甚至同一提供商所支持的功能也可能存在很大差异。

QGeoRoutingManager 中有几个功能可用于检查当前提供商和授权级别支持哪些功能。

另请参阅 QGeoRoutingManager

成员类型文档

枚举 QGeoRouteRequest::FeatureType
标志 QGeoRouteRequest::FeatureTypes

定义对路线规划很重要的特征。

这些值将与QGeoRouteRequest::FeatureWeight 结合使用,以确定它们是否应成为路线的一部分。

常量说明
QGeoRouteRequest::NoFeature0x00000000QGeoRoutingManager::supportedFeatureTypes() 使用,表示规划路线时不考虑任何地物。
QGeoRouteRequest::TollFeature0x00000001规划路线时考虑收费公路。
QGeoRouteRequest::HighwayFeature0x00000002规划路线时考虑高速公路。
QGeoRouteRequest::PublicTransitFeature0x00000004规划路线时考虑公共交通。
QGeoRouteRequest::FerryFeature0x00000008规划路线时考虑轮渡。
QGeoRouteRequest::TunnelFeature0x00000010规划路线时考虑隧道。
QGeoRouteRequest::DirtRoadFeature0x00000020规划路线时考虑土路。
QGeoRouteRequest::ParksFeature0x00000040规划路线时考虑公园。
QGeoRouteRequest::MotorPoolLaneFeature0x00000080规划路线时考虑机动车道。
QGeoRouteRequest::TrafficFeature0x00000100规划路线时考虑当前的交通状况。自QtLocation 5.10 起

FeatureTypes 类型是QFlags<FeatureType> 的类型定义。它存储特征类型值的 OR 组合。

枚举 QGeoRouteRequest::FeatureWeight
flags QGeoRouteRequest::FeatureWeights

定义在规划路线时与地物相关联的权重。

这些值将与 QGeoRouteRequest::Feature 结合使用,以确定它们是否应该成为路线的一部分。

常量描述
QGeoRouteRequest::NeutralFeatureWeight0x00000000地物的存在与否不会影响路线的规划。
QGeoRouteRequest::PreferFeatureWeight0x00000001包含该地物的路线比不包含该地物的路线更受青睐。
QGeoRouteRequest::RequireFeatureWeight0x00000002只有包含该特征的路线才会被考虑,否则不会返回任何路线。
QGeoRouteRequest::AvoidFeatureWeight0x00000004不包含该地物的路线将优先于包含该地物的路线。
QGeoRouteRequest::DisallowFeatureWeight0x00000008只有不包含该特征的路线才会被考虑,否则将不返回任何路线。

FeatureWeights 类型是QFlags<FeatureWeight> 的类型定义。它存储特征权重值的 OR 组合。

枚举 QGeoRouteRequest::ManeuverDetail
flags QGeoRouteRequest::ManeuverDetails

定义路由中应包含的机动信息量。

常量说明
QGeoRouteRequest::NoManeuvers0x0000路由中不应包含任何机动信息。
QGeoRouteRequest::BasicManeuvers0x0001路线中将包含基本机动信息。这将包括QGeoManeuver::instructionText().

ManeuverDetails 类型是QFlags<ManeuverDetail> 的类型定义。它存储 ManeuverDetail 值的 OR 组合。

枚举 QGeoRouteRequest::RouteOptimization
flags QGeoRouteRequest::RouteOptimizations

定义应用于路线规划的优化类型。

常量描述
QGeoRouteRequest::ShortestRoute0x0001最小化行程长度。
QGeoRouteRequest::FastestRoute0x0002行程时间最小化。
QGeoRouteRequest::MostEconomicRoute0x0004旅程成本最小化。
QGeoRouteRequest::MostScenicRoute0x0008最大化旅程的风景潜力。

RouteOptimizations 类型是QFlags<RouteOptimization> 的类型定义。它存储 RouteOptimization 值的 OR 组合。

枚举 QGeoRouteRequest::SegmentDetail
flags QGeoRouteRequest::SegmentDetails

定义应包含在路由中的路由段信息量。

常量说明
QGeoRouteRequest::NoSegmentData0x0000路由中不应包含分段数据。使用此分段详细信息级别请求的路线将把QGeoRouteSegment::path() 初始化为上一个QGeoManeuver 实例和下一个 实例之间的一条直线。
QGeoRouteRequest::BasicSegmentData0x0001路线将包含基本路段数据。其中包括QGeoRouteSegment::path()。

SegmentDetails 类型是QFlags<SegmentDetail> 的类型定义。它存储 SegmentDetail 值的 OR 组合。

枚举 QGeoRouteRequest::TravelMode
flags QGeoRouteRequest::TravelModes

定义路线使用的旅行模式。

常量描述
QGeoRouteRequest::CarTravel0x0001该路径将针对驾驶汽车的人进行优化。
QGeoRouteRequest::PedestrianTravel0x0002为步行者优化路线。
QGeoRouteRequest::BicycleTravel0x0004为骑自行车的人优化路线。
QGeoRouteRequest::PublicTransitTravel0x0008为乘坐公共交通的乘客优化路线。
QGeoRouteRequest::TruckTravel0x0010为驾驶卡车的人优化路线。

TravelModes 类型是QFlags<TravelMode> 的类型定义。它存储 TravelMode 值的 OR 组合。

成员函数文档

[explicit] QGeoRouteRequest::QGeoRouteRequest(const QList<QGeoCoordinate> &waypoints = QList<QGeoCoordinate>())

构造一个请求,计算通过坐标waypoints 的路径。

路线将依次穿越waypoints 的对象。

QGeoRouteRequest::QGeoRouteRequest(const QGeoCoordinate &origin, const QGeoCoordinate &destination)

构造一个请求,计算origindestination 之间的路径。

[noexcept] QGeoRouteRequest::QGeoRouteRequest(const QGeoRouteRequest &other)

根据other 的内容构建路由请求对象。

[noexcept] QGeoRouteRequest::~QGeoRouteRequest()

销毁请求。

QDateTime QGeoRouteRequest::departureTime() const

返回请求中的出发时间。

另请参阅 setDepartureTime().

QList<QGeoRectangle> QGeoRouteRequest::excludeAreas() const

返回路线不得穿越的区域。

另请参见 setExcludeAreas()。

QList<QGeoRouteRequest::FeatureType> QGeoRouteRequest::featureTypes() const

返回规划路线时将考虑的地物列表。权重为NeutralFeatureWeight 的地物将不会返回。

QGeoRouteRequest::FeatureWeight QGeoRouteRequest::featureWeight(QGeoRouteRequest::FeatureType featureType) const

返回在规划路线时分配给featureType 的权重。

如果没有为featureType 指定特征权重,则将返回NeutralFeatureWeight

另请参阅 setFeatureWeight()。

QGeoRouteRequest::ManeuverDetail QGeoRouteRequest::maneuverDetail() const

返回用于表示路由操作的详细程度。

另请参阅 setManeuverDetail()。

int QGeoRouteRequest::numberAlternativeRoutes() const

返回将请求的替代路线的数量。

另请参见 setNumberAlternativeRoutes()。

QGeoRouteRequest::RouteOptimizations QGeoRouteRequest::routeOptimization() const

返回该请求指定的规划路线时应使用的优化标准。

另请参阅 setRouteOptimization()。

QGeoRouteRequest::SegmentDetail QGeoRouteRequest::segmentDetail() const

返回用于表示路由段的详细程度。

另请参阅 setSegmentDetail()。

void QGeoRouteRequest::setDepartureTime(const QDateTime &departureTime)

设置路线计算的出发时间departureTime 。后台可利用此信息计算出更快的路线,例如,避开高峰时段的交通拥堵。

默认值为无效的QDateTime

另请参阅 departureTime()。

void QGeoRouteRequest::setExcludeAreas(const QList<QGeoRectangle> &areas)

areas 设置为路线不得穿越的排除区域。

另请参阅 excludeAreas()。

void QGeoRouteRequest::setFeatureWeight(QGeoRouteRequest::FeatureType featureType, QGeoRouteRequest::FeatureWeight featureWeight)

在规划路线时,为地物featureType 分配权重featureWeight

默认情况下,所有地物的权重都是NeutralFeatureWeight

无法为QGeoRouteRequest::NoFeature 分配权重。

另请参阅 featureWeight()。

void QGeoRouteRequest::setManeuverDetail(QGeoRouteRequest::ManeuverDetail maneuverDetail)

将表示路由操作时使用的详细程度设置为maneuverDetail

默认值为QGeoRouteRequest::BasicManeuvers

另请参阅 maneuverDetail() 。

void QGeoRouteRequest::setNumberAlternativeRoutes(int alternatives)

设置向alternatives 申请的备选路由数。如果alternatives 为负数,则备选路由数设为 0。

默认值为 0。

另请参阅 numberAlternativeRoutes() 。

void QGeoRouteRequest::setRouteOptimization(QGeoRouteRequest::RouteOptimizations optimization)

设置规划路线时使用的优化标准optimization

默认值为QGeoRouteRequest::FastestRoute

另请参阅 routeOptimization()。

void QGeoRouteRequest::setSegmentDetail(QGeoRouteRequest::SegmentDetail segmentDetail)

设置向segmentDetail 表示路由段时使用的详细程度。

另请参阅 segmentDetail() 。

void QGeoRouteRequest::setTravelModes(QGeoRouteRequest::TravelModes travelModes)

将规划路线时应考虑的旅行模式设置为travelModes

默认值为QGeoRouteRequest::CarTravel

另请参阅 travelModes()。

void QGeoRouteRequest::setWaypoints(const QList<QGeoCoordinate> &waypoints)

waypoints 设置为路线应经过的航点。

航点应按从起点到终点的顺序给出。

在将航点设置为包含两个或两个以上坐标的列表之前,该请求将无效。

另请参阅 waypoints()。

QGeoRouteRequest::TravelModes QGeoRouteRequest::travelModes() const

返回该请求指定的在规划路线时应考虑的出行方式。

另请参阅 setTravelModes()。

QList<QGeoCoordinate> QGeoRouteRequest::waypoints() const

返回路线将经过的航点。

另请参阅 setWaypoints()。

[noexcept] QGeoRouteRequest &QGeoRouteRequest::operator=(const QGeoRouteRequest &other)

为路由请求对象分配other ,然后返回对该路由请求对象的引用。

相关非成员

[noexcept] bool operator!=(const QGeoRouteRequest &lhs, const QGeoRouteRequest &rhs)

返回路由请求lhsrhs 是否不相等。

[noexcept] bool operator==(const QGeoRouteRequest &lhs, const QGeoRouteRequest &rhs)

返回路由请求lhsrhs 是否相等。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.