QGeoServiceProvider 类

QGeoServiceProvider 类聚合了对提供地理信息的服务的访问。 更多信息...

头文件 #include <QGeoServiceProvider>
qmakeQT += location
继承 QObject

公共类型

枚举Error { NoError, NotSupportedError, UnknownParameterError, MissingRequiredParameterError, ConnectionError, LoaderError }
枚举GeocodingFeature { NoGeocodingFeatures, OnlineGeocodingFeature, OfflineGeocodingFeature, ReverseGeocodingFeature, LocalizedGeocodingFeature, AnyGeocodingFeatures }
标识GeocodingFeatures
枚举MappingFeature { NoMappingFeatures, OnlineMappingFeature, OfflineMappingFeature, LocalizedMappingFeature, AnyMappingFeatures }
标识MappingFeatures
枚举NavigationFeature { NoNavigationFeatures, OnlineNavigationFeature, OfflineNavigationFeature, AnyNavigationFeatures }
标识NavigationFeatures
枚举PlacesFeature { NoPlacesFeatures, OnlinePlacesFeature, OfflinePlacesFeature, SavePlaceFeature, RemovePlaceFeature, …, AnyPlacesFeatures }
标识PlacesFeatures
枚举RoutingFeature { NoRoutingFeatures, OnlineRoutingFeature, OfflineRoutingFeature, LocalizedRoutingFeature, RouteUpdatesFeature, …, AnyRoutingFeatures }
标识RoutingFeatures

公共函数

QGeoServiceProvider(const QString &providerName, const QVariantMap &parameters = QVariantMap(), bool allowExperimental = false)
虚拟~QGeoServiceProvider()
QGeoServiceProvider::Errorerror() const
QStringerrorString() const
QGeoServiceProvider::ErrorgeocodingError() const
QStringgeocodingErrorString() const
QGeoServiceProvider::GeocodingFeaturesgeocodingFeatures() const
QGeoCodingManager *geocodingManager() const
QGeoServiceProvider::ErrormappingError() const
QStringmappingErrorString() const
QGeoServiceProvider::MappingFeaturesmappingFeatures() const
QGeoServiceProvider::ErrornavigationError() const
QStringnavigationErrorString() const
(自 QtLocation 5.11) QGeoServiceProvider::NavigationFeaturesnavigationFeatures() const
QPlaceManager *placeManager() const
QGeoServiceProvider::ErrorplacesError() const
QStringplacesErrorString() const
QGeoServiceProvider::PlacesFeaturesplacesFeatures() const
QGeoServiceProvider::ErrorroutingError() const
QStringroutingErrorString() const
QGeoServiceProvider::RoutingFeaturesroutingFeatures() const
QGeoRoutingManager *routingManager() const
voidsetAllowExperimental(bool allow)
voidsetLocale(const QLocale &locale)
voidsetParameters(const QVariantMap &parameters)

静态公共成员

详细描述

地图和导航API允许人们访问各种地理信息,包括执行地理编码、路线规划以及显示地图的功能。QGeoServiceProvider将单个供应商提供的这些服务集合在一起。

对于各种领域,可以混合和匹配服务供应商,以便可以使用来自不同服务供应商的地理编码管理器和地理路由管理器。

除非客户端能够验证不同服务提供的数据兼容性,否则不建议这样做,因为底层数据集的差异可能会导致服务之间严重的矛盾。

QGeoServiceProvider的子类保证了它们提供的不同服务是互操作的。

每个服务供应商都必须遵循它们的服务特定参数名称/键的命名约定。它们使用提供商名称作为所有参数名称的前缀。当加载提供商时,只会传递以提供商名称开头的参数。这避免了与其他插件共享敏感参数,例如机密tokenapp_id参数。

请查阅GeoServices插件特定文档,以获得可用参数名称/键和值的完整列表。

成员类型文档

枚举 QGeoServiceProvider::Error

描述与服务提供商插件加载和设置相关的错误。

常量描述
QGeoServiceProvider::NoError0没有发生错误。
QGeoServiceProvider::NotSupportedError1插件不支持此功能。
QGeoServiceProvider::UnknownParameterError2插件没有识别出它收到的参数之一。
QGeoServiceProvider::MissingRequiredParameterError3插件找不到它预期的参数之一。
QGeoServiceProvider::ConnectionError4插件无法连接到其后端服务或数据库。
QGeoServiceProvider::LoaderError5插件加载失败。

枚举 QGeoServiceProvider::GeocodingFeature
标志 QGeoServiceProvider::GeocodingFeatures

描述地理服务提供程序支持的地理编码功能。

常量描述
QGeoServiceProvider::NoGeocodingFeatures0不支持地理编码功能。
QGeoServiceProvider::OnlineGeocodingFeature(1<<0)支持在线地理编码。
QGeoServiceProvider::OfflineGeocodingFeature(1<<1)支持离线地理编码。
QGeoServiceProvider::ReverseGeocodingFeature(1<<2)支持反向地理编码。
QGeoServiceProvider::LocalizedGeocodingFeature(1<<3)支持返回带有本地化地址的地理编码结果。
QGeoServiceProvider::AnyGeocodingFeatures~(0)匹配提供任何地理编码功能的地理解服务提供程序。

GeocodingFeatures 类型是 QFlags<GeocodingFeature> 的别名。它存储 GeocodingFeature 值的 OR 组合。

枚举 QGeoServiceProvider::MappingFeature
标志 QGeoServiceProvider::MappingFeatures

描述地理服务提供商支持的地图功能。

常量描述
QGeoServiceProvider::NoMappingFeatures0不支持地图功能。
QGeoServiceProvider::OnlineMappingFeature(1<<0)支持在线地图。
QGeoServiceProvider::OfflineMappingFeature(1<<1)支持离线地图。
QGeoServiceProvider::LocalizedMappingFeature(1<<2)支持返回本地化地图数据。
QGeoServiceProvider::AnyMappingFeatures~(0)匹配提供任何地图功能的地理服务提供商。

MappingFeatures 类型是 QFlags<MappingFeature> 的别名。它存储 MappingFeature 值的 OR 组合。

描述地理服务提供商支持的导航功能。

常量描述
QGeoServiceProvider::NoNavigationFeatures0不支持导航功能。
QGeoServiceProvider::OnlineNavigationFeature(1<<0)支持在线导航。
QGeoServiceProvider::OfflineNavigationFeature(1<<1)支持离线导航。
QGeoServiceProvider::AnyNavigationFeatures~(0)匹配提供任何导航功能的地理服务提供商。

NavigationFeatures 类型是 QFlags<NavigationFeature> 的别名。它存储 NavigationFeature 值的 OR 组合。

枚举 QGeoServiceProvider::PlacesFeature
标志 QGeoServiceProvider::PlacesFeatures

描述地理服务提供商支持的地方功能。

常量描述
QGeoServiceProvider::NoPlacesFeatures0不支持地方功能。
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> 的别名。它存储 PlacesFeature 值的 OR 组合。

枚举 QGeoServiceProvider::RoutingFeature
标志 QGeoServiceProvider::RoutingFeatures

描述地理服务提供商支持的路径功能。

常量描述
QGeoServiceProvider::NoRoutingFeatures0不支持路径功能。
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 的 typedef。它存储 RoutingFeature 值的 OR 组合。

成员函数文档

QGeoServiceProvider::QGeoServiceProvider(const QString &providerName, const QVariantMap &parameters = QVariantMap(), bool allowExperimental = false)

构造一个 QGeoServiceProvider,其后端名为 providerName,使用提供的 parameters

如果多个插件具有相同的 providerName,则使用报告最高 providerVersion() 的插件。

如果 allowExperimental 为真,则可使用标记为实验性的插件。默认情况下不考虑实验性插件。

如果没有找到与 providerName 匹配的插件,则 error() 和 errorString() 将提供关于这种情况的详细原因。

注意:在将 parameters 列表传递给即将加载的提供程序插件之前,该列表将被过滤以避免将特定于插件的参数与无关的提供程序插件共享。特定于插件的参数键必须以提供程序名称为前缀(例如 here.app_id)。

[virtual noexcept] QGeoServiceProvider::~QGeoServiceProvider()

销毁服务提供商对象。

[静态] 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

返回地理服务提供商支持的地图功能。

返回描述在上一次尝试创建导航管理器过程中发生的错误的错误代码。

返回描述在上一次尝试创建导航管理器过程中发生的错误的字符串。

返回地理服务提供商支持的导航功能。

此功能是在 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 &parameters)

将用于构造此服务提供商的独立管理类别的参数设置为 parameters

在将参数列表传递给即将加载的服务提供商之前,该列表会被过滤以避免将特定提供商的参数与无关的服务提供商共享。特定提供商的参数键必须以提供商名称为前缀(例如 here.app_id)。

重要:这将销毁此服务提供者实例持有的任何现有管理器。在调用此方法后,您应确保不要尝试使用之前检索到的任何指针。

© 2024 Qt 公司有限。此处包含的文档贡献归各自的版权所有者所有。所提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款授予的。Qt 及其对应标志是芬兰和/或其他国家的 Qt 公司的商标。所有其他商标均为各自所有者的财产。