QGeoServiceProvider Class
QGeoServiceProvider 类汇总了对提供地理信息的服务访问功能。更多内容...
| Header: | #include <QGeoServiceProvider> |
| qmake: | QT += location |
| Inherits: | QObject |
公共类型
| enum | Error { NoError, NotSupportedError, UnknownParameterError, MissingRequiredParameterError, ConnectionError, LoaderError } |
| enum | GeocodingFeature { NoGeocodingFeatures, OnlineGeocodingFeature, OfflineGeocodingFeature, ReverseGeocodingFeature, LocalizedGeocodingFeature, AnyGeocodingFeatures } |
| flags | GeocodingFeatures |
| enum | MappingFeature { NoMappingFeatures, OnlineMappingFeature, OfflineMappingFeature, LocalizedMappingFeature, AnyMappingFeatures } |
| flags | MappingFeatures |
| enum | NavigationFeature { NoNavigationFeatures, OnlineNavigationFeature, OfflineNavigationFeature, AnyNavigationFeatures } |
| flags | NavigationFeatures |
| enum | PlacesFeature { NoPlacesFeatures, OnlinePlacesFeature, OfflinePlacesFeature, SavePlaceFeature, RemovePlaceFeature, …, AnyPlacesFeatures } |
| flags | PlacesFeatures |
| enum | RoutingFeature { NoRoutingFeatures, OnlineRoutingFeature, OfflineRoutingFeature, LocalizedRoutingFeature, RouteUpdatesFeature, …, AnyRoutingFeatures } |
| flags | RoutingFeatures |
公共函数
| QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = QVariantMap(), bool allowExperimental = false) | |
| virtual | ~QGeoServiceProvider() |
| QGeoServiceProvider::Error | error() const |
| QString | errorString() const |
| QGeoServiceProvider::Error | geocodingError() const |
| QString | geocodingErrorString() const |
| QGeoServiceProvider::GeocodingFeatures | geocodingFeatures() const |
| QGeoCodingManager * | geocodingManager() const |
| QGeoServiceProvider::Error | mappingError() const |
| QString | mappingErrorString() const |
| QGeoServiceProvider::MappingFeatures | mappingFeatures() const |
| QGeoServiceProvider::Error | navigationError() const |
| QString | navigationErrorString() const |
(since QtLocation 5.11) QGeoServiceProvider::NavigationFeatures | navigationFeatures() const |
| QPlaceManager * | placeManager() const |
| QGeoServiceProvider::Error | placesError() const |
| QString | placesErrorString() const |
| QGeoServiceProvider::PlacesFeatures | placesFeatures() const |
| QGeoServiceProvider::Error | routingError() const |
| QString | routingErrorString() const |
| QGeoServiceProvider::RoutingFeatures | routingFeatures() const |
| QGeoRoutingManager * | routingManager() const |
| void | setAllowExperimental(bool allow) |
| void | setLocale(const QLocale &locale) |
| void | setParameters(const QVariantMap ¶meters) |
静态公共成员
| QStringList | availableServiceProviders() |
详细描述
地图和导航 API 允许用户访问各种地理信息,包括执行地理编码、路径规划和地图显示的功能。QGeoServiceProvider 将由单一供应商提供的这套服务的访问权限整合在一起。
可以混合搭配不同领域的服务提供商,因此可以将一个服务提供商的地理编码管理器与另一个服务提供商的地理路线规划管理器结合使用。
除非客户端能够验证不同服务提供的数据是否兼容,否则不建议这样做,因为底层数据集的差异可能会导致服务之间出现严重的不一致。
QGeoServiceProvider 的子类保证其提供的不同服务能够互操作。
每个服务提供商都必须遵循其服务特定参数名称/键的命名约定。它们将提供商名称用作所有参数名称的前缀。加载提供商时,仅会传递那些参数名称以该提供商名称开头的参数。这避免了将敏感参数(如机密的token 或app_id 参数)与其他插件共享。
请查阅 GeoServices 插件的特定文档,以获取可用参数名称/键及其值的完整列表。
成员类型文档
enum QGeoServiceProvider::Error
描述了与服务提供商插件的加载和配置相关的错误。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoError | 0 | 未发生错误。 |
QGeoServiceProvider::NotSupportedError | 1 | 该插件不支持此功能。 |
QGeoServiceProvider::UnknownParameterError | 2 | 插件未识别出其接收到的某个参数。 |
QGeoServiceProvider::MissingRequiredParameterError | 3 | 插件未找到其预期的某个参数。 |
QGeoServiceProvider::ConnectionError | 4 | 插件无法连接到其后端服务或数据库。 |
QGeoServiceProvider::LoaderError | 5 | 插件加载失败。 |
enum QGeoServiceProvider::GeocodingFeature
flags QGeoServiceProvider::GeocodingFeatures
描述了地理服务提供商支持的地理编码功能。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoGeocodingFeatures | 0 | 不支持任何地理编码功能。 |
QGeoServiceProvider::OnlineGeocodingFeature | (1<<0) | 支持在线地理编码。 |
QGeoServiceProvider::OfflineGeocodingFeature | (1<<1) | 支持离线地理编码。 |
QGeoServiceProvider::ReverseGeocodingFeature | (1<<2) | 支持反向地理编码。 |
QGeoServiceProvider::LocalizedGeocodingFeature | (1<<3) | 支持返回包含本地化地址的地理编码结果。 |
QGeoServiceProvider::AnyGeocodingFeatures | ~(0) | 匹配提供任何地理编码功能的地理服务提供商。 |
GeocodingFeatures 类型是QFlags<GeocodingFeature> 的 typedef。它存储了 GeocodingFeature 值的“或”组合。
enum QGeoServiceProvider::MappingFeature
flags QGeoServiceProvider::MappingFeatures
描述了地理服务提供商支持的地图功能。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoMappingFeatures | 0 | 不支持任何地图功能。 |
QGeoServiceProvider::OnlineMappingFeature | (1<<0) | 支持在线地图功能。 |
QGeoServiceProvider::OfflineMappingFeature | (1<<1) | 支持离线地图。 |
QGeoServiceProvider::LocalizedMappingFeature | (1<<2) | 支持返回本地化的地图数据。 |
QGeoServiceProvider::AnyMappingFeatures | ~(0) | 匹配提供任何地图功能的地理服务提供商。 |
MappingFeatures 类型是QFlags<MappingFeature> 的 typedef。它存储了 MappingFeature 值的“或”组合。
enum QGeoServiceProvider::NavigationFeature
flags QGeoServiceProvider::NavigationFeatures
描述了地理服务提供商支持的导航功能。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoNavigationFeatures | 0 | 不支持任何导航功能。 |
QGeoServiceProvider::OnlineNavigationFeature | (1<<0) | 支持在线导航。 |
QGeoServiceProvider::OfflineNavigationFeature | (1<<1) | 支持离线导航。 |
QGeoServiceProvider::AnyNavigationFeatures | ~(0) | 匹配提供任何导航功能的地理服务提供商。 |
NavigationFeatures 类型是QFlags<NavigationFeature> 的 typedef。它存储 NavigationFeature 值的“或”组合。
enum QGeoServiceProvider::PlacesFeature
flags QGeoServiceProvider::PlacesFeatures
描述了地理服务提供商支持的地点功能。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoPlacesFeatures | 0 | 不支持任何地点功能。 |
QGeoServiceProvider::OnlinePlacesFeature | (1<<0) | 支持在线地点。 |
QGeoServiceProvider::OfflinePlacesFeature | (1<<1) | 支持离线地点。 |
QGeoServiceProvider::SavePlaceFeature | (1<<2) | 支持保存地点。 |
QGeoServiceProvider::RemovePlaceFeature | (1<<3) | 支持移除或删除地点。 |
QGeoServiceProvider::SaveCategoryFeature | (1<<4) | 支持保存类别。 |
QGeoServiceProvider::RemoveCategoryFeature | (1<<5) | 支持移除或删除地点。 |
QGeoServiceProvider::PlaceRecommendationsFeature | (1<<6) | 支持搜索与另一个地点相似的推荐地点。 |
QGeoServiceProvider::SearchSuggestionsFeature | (1<<7) | 支持搜索建议。 |
QGeoServiceProvider::LocalizedPlacesFeature | (1<<8) | 支持返回本地化的地点数据。 |
QGeoServiceProvider::NotificationsFeature | (1<<9) | 支持地点和分类变更的通知。 |
QGeoServiceProvider::PlaceMatchingFeature | (1<<10) | 支持匹配来自两个不同地理服务提供商的地点。 |
QGeoServiceProvider::AnyPlacesFeatures | ~(0) | 匹配提供任何地点功能的地理服务提供商。 |
PlacesFeatures 类型是QFlags<PlacesFeature> 的 typedef。它存储 PlacesFeature 值的“或”组合。
enum QGeoServiceProvider::RoutingFeature
flags QGeoServiceProvider::RoutingFeatures
描述了地理服务提供商支持的路由功能。
| 常量 | 值 | 描述 |
|---|---|---|
QGeoServiceProvider::NoRoutingFeatures | 0 | 不支持任何路由功能。 |
QGeoServiceProvider::OnlineRoutingFeature | (1<<0) | 支持在线路由。 |
QGeoServiceProvider::OfflineRoutingFeature | (1<<1) | 支持离线导航。 |
QGeoServiceProvider::LocalizedRoutingFeature | (1<<2) | 支持返回包含本地化地址和指引的路线。 |
QGeoServiceProvider::RouteUpdatesFeature | (1<<3) | 支持根据当前位置更新现有路线。 |
QGeoServiceProvider::AlternativeRoutesFeature | (1<<4) | 支持返回备选路线。 |
QGeoServiceProvider::ExcludeAreasRoutingFeature | (1<<5) | 支持指定返回的路线不得穿越的区域。 |
QGeoServiceProvider::AnyRoutingFeatures | ~(0) | 匹配提供任何路线规划功能的地理服务提供商。 |
RoutingFeatures 类型是QFlags<RoutingFeature> 的 typedef。它存储 RoutingFeature 值的“或”组合。
成员函数文档
QGeoServiceProvider::QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = QVariantMap(), bool allowExperimental = false)
使用提供的parameters ,构建一个后端名称为providerName 的QGeoServiceProvider。
如果有多个插件具有相同的providerName ,则将使用报告的providerVersion()值最高的插件。
如果allowExperimental 为 true,则可能会使用标记为实验性的插件。默认情况下,实验性插件不会被考虑。
如果无法加载任何与providerName 匹配的插件,则error() 和errorString() 将提供详细原因说明。
注意:在 将parameters 列表传递给待加载的提供者插件之前, 该列表会经过过滤,以避免与无关的提供者插件共享插件特定参数。插件特定参数键必须以提供者名称作为前缀(例如here.app_id )。
[virtual noexcept] QGeoServiceProvider::~QGeoServiceProvider()
销毁服务提供者对象。
[static] QStringList QGeoServiceProvider::availableServiceProviders()
返回一个包含可用服务提供商名称的列表,供与QGeoServiceProvider 构造函数配合使用。
QGeoServiceProvider::Error QGeoServiceProvider::error() const
返回一个错误代码,用于描述该类执行的上一项操作中发生的错误。
QString QGeoServiceProvider::errorString() const
返回一个字符串,描述本类执行的上一项操作中发生的错误。
QGeoServiceProvider::Error QGeoServiceProvider::geocodingError() const
返回一个错误代码,用于描述上次尝试创建地理编码管理器时发生的错误。
QString QGeoServiceProvider::geocodingErrorString() const
返回一个字符串,描述上次尝试创建地理编码管理器时发生的错误。
QGeoServiceProvider::GeocodingFeatures QGeoServiceProvider::geocodingFeatures() const
返回地理服务提供商支持的地理编码功能。
QGeoCodingManager *QGeoServiceProvider::geocodingManager() const
返回服务提供商提供的QGeoCodingManager 。
如果服务提供商未提供任何地理编码服务,该函数将返回nullptr 。
首次调用此函数时,它将尝试构建一个QGeoCodingManager 实例。如果构建成功,该QGeoCodingManager 将被缓存;否则,每次调用此函数时都会尝试构建一个QGeoCodingManager 实例,直到构建成功为止。
QGeoCodingManager 由该QGeoServiceProvider 拥有,不应单独删除。用户应假设删除QGeoServiceProvider 会导致该方法返回的指针失效。
调用此函数后,error() 和errorString() 将报告在QGeoCodingManager 构造过程中发生的任何错误。
QGeoServiceProvider::Error QGeoServiceProvider::mappingError() const
返回一个错误代码,用于描述上次尝试创建映射管理器时发生的错误。
QString QGeoServiceProvider::mappingErrorString() const
返回一个字符串,描述上次尝试创建映射管理器时发生的错误。
QGeoServiceProvider::MappingFeatures QGeoServiceProvider::mappingFeatures() const
返回地理服务提供商支持的地图功能。
QGeoServiceProvider::Error QGeoServiceProvider::navigationError() const
返回一个错误代码,用于描述上次尝试创建导航管理器时发生的错误。
QString QGeoServiceProvider::navigationErrorString() const
返回一个字符串,描述上次尝试创建导航管理器时发生的错误。
[since QtLocation 5.11] QGeoServiceProvider::NavigationFeatures QGeoServiceProvider::navigationFeatures() const
返回地理服务提供商支持的导航功能。
该函数首次出现在 QtLocation 5.11 中。
QPlaceManager *QGeoServiceProvider::placeManager() const
返回由服务提供商提供的QPlaceManager 。
当首次调用此函数时,它将尝试构建一个QPlaceManager 实例。如果构建成功,QPlaceManager 将被缓存;否则,每次调用此函数时都会尝试构建一个QPlace 实例,直到构建成功为止。
QGeoPlaceManager 由该QGeoServiceProvider 持有,不应单独删除。用户应假设删除QGeoServiceProvider 会导致该方法返回的指针失效。
调用此函数后,error() 和errorString() 将报告在QPlaceManager 构造过程中发生的任何错误。
QGeoServiceProvider::Error QGeoServiceProvider::placesError() const
返回一个错误代码,用于描述上次尝试创建地点管理器时发生的错误。
QString QGeoServiceProvider::placesErrorString() const
返回一个字符串,描述在最近一次尝试创建地点管理器时发生的错误。
QGeoServiceProvider::PlacesFeatures QGeoServiceProvider::placesFeatures() const
返回地理服务提供商支持的地点要素。
QGeoServiceProvider::Error QGeoServiceProvider::routingError() const
返回一个错误代码,用于描述上次尝试创建路由管理器时发生的错误。
QString QGeoServiceProvider::routingErrorString() const
返回一个字符串,描述上次尝试创建路由管理器时发生的错误。
QGeoServiceProvider::RoutingFeatures QGeoServiceProvider::routingFeatures() const
返回该地理服务提供商支持的路线规划功能。
QGeoRoutingManager *QGeoServiceProvider::routingManager() const
返回服务提供商提供的QGeoRoutingManager 。
如果服务提供商未提供任何地理路由服务,则该函数将返回nullptr 。
当首次调用此函数时,它将尝试构建一个QGeoRoutingManager 实例。如果构建成功,该QGeoRoutingManager 将被缓存;否则,每次调用此函数都会尝试构建一个QGeoRoutingManager 实例,直到构建成功为止。
QGeoRoutingManager 由该QGeoServiceProvider 拥有,不应单独删除。用户应假设删除QGeoServiceProvider 会导致该方法返回的指针失效。
调用此函数后,error() 和errorString() 将报告在QGeoRoutingManager 构造过程中发生的任何错误。
void QGeoServiceProvider::setAllowExperimental(bool allow)
设置在为该服务提供者定位正确的插件库(allow )时,是否将实验性插件纳入考虑范围。
重要提示:此操作将销毁该服务提供者实例持有的所有现有管理器。调用此方法后,请务必不要尝试使用之前获取的任何指针。
void QGeoServiceProvider::setLocale(const QLocale &locale)
将此服务提供商使用的区域设置为locale 。如果启用了相关功能(参见LocalizedMappingFeature 等),这将更改该提供商数据中的语言、单位及其他与区域设置相关的属性。
void QGeoServiceProvider::setParameters(const QVariantMap ¶meters)
将用于为该服务提供商构建各个管理器类的参数设置为parameters 。
在将 `parameters ` 列表传递给待加载的服务提供商之前,会先对该列表进行过滤,以避免与无关的服务提供商共享特定于该提供商的参数。特定于提供商的参数键必须以提供商名称作为前缀(例如:here.app_id )。
重要提示:此操作将销毁该服务提供商实例持有的所有现有管理器。调用此方法后,请务必不要尝试使用之前获取的任何指针。
© 2026 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.