PySide6.QtLocation.QGeoCodingManagerEngine

class QGeoCodingManagerEngine

QGeoCodingManagerEngine 类为QGeoServiceProvider插件的实现者提供了一个接口和便捷方法,这些实现者希望提供对地理编码操作的支持。更多

PySide6.QtLocation.QGeoCodingManagerEngine 的继承图

概要

方法

虚拟方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

注意

后端类没有源代码或二进制兼容性保证。API 仅保证与开发时使用的 Qt 版本兼容。然而,API 更改只会在次要版本中进行。(6.6、6.7 等。)

在默认实现中,supportsGeocoding() 和 supportsReverseGeocoding() 返回 false,而 geocode()reverseGeocode() 会导致 UnsupportedOptionError 发生。

如果服务提供商支持地理编码,子类应提供geocode()的实现,并在调用geocode()之前的某个时间点调用setSupportsGeocoding(true)。

同样地,如果服务提供商支持反向地理编码,子类应提供reverseGeocode()的实现,并在reverseGeocode()被调用之前的某个时间点调用setSupportsReverseGeocoding(true)。

QGeoCodingManagerEngine 的子类通常会在内部使用 QGeoCodeReply 的子类,以便向引擎使用的 QGeoCodeReply 实例添加任何引擎特定的数据(例如用于基于网络服务的 QNetworkReply 对象)。

另请参阅

QGeoCodingManager

__init__(parameters[, parent=None])
Parameters:
  • parameters – 字典,键类型为 .QString,值类型为 QVariant。

  • parentQObject

使用指定的parent构造一个新的引擎,并使用parameters将任何特定于实现的数据传递给引擎。

errorOccurred(reply, error[, errorString=""])
Parameters:

当在reply的处理过程中检测到错误时,会发出此信号。finished()信号可能会紧随其后。

错误将由错误代码error描述。如果errorString不为空,它将包含错误的文本描述。

此信号和errorOccurred()将同时发出。

注意

不要删除连接到这个信号的槽中的reply对象。请使用deleteLater()代替。

finished(reply)
Parameters:

回复QGeoCodeReply

reply完成处理时,会发出此信号。

如果 reply::error() 等于 NoError,则处理成功完成。

此信号和finished()将同时发出。

注意

不要删除连接到这个信号的槽中的reply对象。请使用deleteLater()代替。

geocode(address, bounds)
Parameters:
Return type:

QGeoCodeReply

开始对address进行地理编码。地理编码是寻找与给定地址对应的坐标的过程。

将返回一个QGeoCodeReply对象,该对象可用于管理地理编码操作并返回操作结果。

此引擎和返回的QGeoCodeReply对象将发出信号,指示操作是否完成或是否发生错误。

如果 supportsGeocoding() 返回 false,将会发生 UnsupportedOptionError

操作完成后,可以使用locations()来检索结果,结果将由一系列QGeoLocation对象组成。这些对象代表了坐标和地址数据的组合。

结果中返回的地址数据可能与address不同。如果地理编码服务后端使用不同的规范地址形式,或者address仅部分填写,通常会发生这种情况。

如果 bounds 非空且是一个有效的 QGeoShape,它将用于将结果限制在 bounds 包含的范围内。这在 address 仅部分填写时特别有用,因为服务将尝试对指定数据的所有匹配项进行地理编码。

用户负责删除返回的回复对象,尽管这可以在连接到finished()errorOccurred()finished()errorOccurred()的槽中使用deleteLater()来完成。

geocode(address, limit, offset, bounds)
Parameters:
  • address – str

  • limit – int

  • offset – int

  • boundsQGeoShape

Return type:

QGeoCodeReply

开始对匹配address的位置进行地理编码。

将返回一个QGeoCodeReply对象,该对象可用于管理地理编码操作并返回操作结果。

此引擎和返回的QGeoCodeReply对象将发出信号,指示操作是否完成或是否发生错误。

操作完成后,可以使用locations()来检索结果,这些结果将由一系列QGeoLocation对象组成。这些对象代表了坐标和地址数据的组合。

如果 limit 是 -1,将返回整个结果集,否则最多返回 limit 个结果。

offset 参数用于请求地理编码服务不返回前 offset 个结果。

limitoffset 结果一起用于实现分页。

如果 bounds 非空且是一个有效的 QGeoShape,它将用于将结果限制在 bounds 所包含的范围内。

用户负责删除返回的回复对象,尽管这可以在连接到finished()errorOccurred()finished()errorOccurred()的槽中使用deleteLater()来完成。

locale()
Return type:

QLocale

返回用于提示此地理编码管理器使用何种语言显示结果的区域设置。

另请参阅

setLocale()

managerName()
Return type:

字符串

返回此引擎实现用于区分自己与其他插件提供的实现的名称。

managerName() 和 managerVersion() 的组合在插件实现中应该是唯一的。

managerVersion()
Return type:

整数

返回此引擎实现的版本。

managerName() 和 managerVersion() 的组合在插件实现中应该是唯一的。

reverseGeocode(coordinate, bounds)
Parameters:
Return type:

QGeoCodeReply

开始对coordinate进行反向地理编码。反向地理编码是寻找与给定坐标对应的地址的过程。

将返回一个QGeoCodeReply对象,该对象可用于管理反向地理编码操作并返回操作结果。

此引擎和返回的QGeoCodeReply对象将发出信号,指示操作是否完成或是否发生错误。

如果 supportsReverseGeocoding() 返回 false,将会发生 UnsupportedOptionError

此时可以使用locations()来检索结果,结果将由一系列QGeoLocation对象组成。这些对象代表了坐标和地址数据的组合。

结果中返回的坐标数据可能与coordinate不同。如果反向地理编码服务后端将坐标移动到更接近匹配地址的位置,或者后端返回多个详细级别的结果,通常会发生这种情况。

如果反向地理编码服务后端返回多个结果,它们将按照具体性顺序提供。这通常发生在后端配置为在多个详细级别上进行反向地理编码时。例如,一些服务将返回街道地址、城市、州和国家的地址和坐标对。

如果 bounds 非空且是一个有效的 QGeoShape,它将用于将结果限制在 bounds 所包含的范围内。

用户负责删除返回的回复对象,尽管这可以在连接到finished()errorOccurred()finished()errorOccurred()的槽中使用deleteLater()来完成。

setLocale(locale)
Parameters:

localeQLocale

设置此管理器使用的区域设置为locale

如果这个地理编码管理器支持以不同语言返回结果,它们将以locale的语言返回。

如果未设置,使用的区域设置默认为系统区域设置。

另请参阅

locale()