QGeoCodingManager 类

QGeoCodingManager 类提供了对地理编码操作的支持。 更多...

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

公共函数

虚拟~QGeoCodingManager()
QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape())
QGeoCodeReply *geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape())
QLocalelocale() const
QStringmanagerName() const
intmanagerVersion() const
QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape())
voidsetLocale(const QLocale &locale)

信号

voiderrorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())
voidfinished(QGeoCodeReply *reply)

详细信息

geocode() 和 reverseGeocode() 函数返回 QGeoCodeReply 对象,这些对象管理这些操作并报告操作的结果和可能发生的任何错误。

geocode() 和 reverseGeocode() 函数可用于将 QGeoAddress 实例转换为 QGeoCoordinate 实例,反之亦然。

geocode() 函数也是重载的,允许用户执行自由文本地理编码操作;如果提供的字符串可以解释为地址,则可以将它地理编码为坐标信息。

可以使用 QGeoServiceProvider::geocodingManager() 访问 QGeoCodingManager 实例。

成员函数文档

[虚拟 noexcept] QGeoCodingManager::~QGeoCodingManager()

销毁此管理器。

[信号] void QGeoCodingManager::errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())

当检测到 回复 处理过程中出现错误时,会发出此信号。可能会随后发出 QGeoCodingManager::finished() 信号。

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

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

注意:不要在连接到该信号的槽中删除 reply 对象。改用 deleteLater()。

[信号] void QGeoCodingManager::finished(QGeoCodeReply *reply)

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

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

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

注意:不要在连接到该信号的槽中删除 reply 对象。改用 deleteLater()。

QGeoCodeReply *QGeoCodingManager::geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape())

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

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

此管理器以及返回的 QGeoCodeReply 对象将发出信号,以指示操作是否完成或是否出现错误。

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

一旦操作完成,可以使用 QGeoCodeReply::locations() 检索结果,这些结果将包括一个由 QGeoLocation 对象组成的列表。这些对象表示坐标和地址数据的组合。

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

如果 bounds 非空且是有效的 QGeoShape,它将用于限制结果到 bounds 内含的结果。如果 address 只部分填写,这将特别有用,因为服务将尝试对所有指定数据进行地理编码。

用户负责删除返回的 reply 对象,尽管这可以在连接到 QGeoCodingManager::finished(),QGeoCodingManager::errorOccurred(),QGeoCodeReply::finished() 或 QGeoCodeReply::errorOccurred() 的槽中进行。

QGeoCodeReply *QGeoCodingManager::geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape())

为与 address 匹配的位置开始地理编码。

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

此管理器以及返回的 QGeoCodeReply 对象将发出信号,以指示操作是否完成或是否出现错误。

一旦操作完成,可以使用 QGeoCodeReply::locations() 检索结果,这些结果将包括一个由 QGeoLocation 对象组成的列表。这些对象表示坐标和地址数据的组合。

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

使用偏移参数来指示地理编码服务不要返回前偏移个结果。

limit偏移结果结合起来用于实现分页。

如果bounds不为空且是一个有效的QGeoShape,则将使用它来限制结果只包含在bounds内的那些。

用户负责删除返回的 reply 对象,尽管这可以在连接到 QGeoCodingManager::finished(),QGeoCodingManager::errorOccurred(),QGeoCodeReply::finished() 或 QGeoCodeReply::errorOccurred() 的槽中进行。

QLocale QGeoCodingManager::locale() const

返回用于提示此地理编码管理器使用哪种语言结果的地区。

另请参阅setLocale

QString QGeoCodingManager::managerName() const

返回实现此地理编码管理器行为的引擎的名称。

managerName()和managerVersion()的组合应唯一于插件的实现。

int QGeoCodingManager::managerVersion() const

返回实现此地理编码管理器行为的引擎的版本。

managerName()和managerVersion()的组合应唯一于插件的实现。

QGeoCodeReply *QGeoCodingManager::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape())

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

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

此管理器以及返回的 QGeoCodeReply 对象将发出信号,以指示操作是否完成或是否出现错误。

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

在此点可以使用QGeoCodeReply::locations()检索结果,结果将包含一个QGeoLocation对象列表。这些对象代表坐标和地址数据的组合。

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

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

如果bounds不为空且是一个有效的QGeoRectangle,则将使用它来限制结果只包含在bounds内的那些。

用户负责删除返回的 reply 对象,尽管这可以在连接到 QGeoCodingManager::finished(),QGeoCodingManager::errorOccurred(),QGeoCodeReply::finished() 或 QGeoCodeReply::errorOccurred() 的槽中进行。

void QGeoCodingManager::setLocale(const QLocale &locale)

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

如果此地理编码管理器支持返回具有不同语言的结果,则它们将使用locale的语言返回。

如果没有设置,则默认使用系统地区。

另请参阅locale

© 2024 The Qt Company Ltd. 本文件中包含的文档贡献均为各自所有者的版权。提供的文档基于自由软件基金会发布的GNU自由文档许可协议1.3版的条款进行许可。Qt及其相应标志是芬兰及其它/所有国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。