GeocodeModel QML 类型

GeocodeModel 类型为地理信息相关的搜索操作提供支持。 更多...

导入语句import QtLocation 6.7
QtLocation 5.5

属性

信号

方法

详细描述

GeocodeModel 类型用作模型/视图组合的一部分,以匹配地址或搜索字符串与地理位置。地理位置的生成、使用或显示方式由附加到 GeocodeModel 的任何视图(例如 MapItemViewListView)决定。

类似于 MapRouteModel,GeocodeModel 工作所需的所有数据都来自服务插件。这包含在 plugin 属性中,并且必须在 GeocodeModel 执行任何有用工作之前设置此属性。

设置插件后,可以使用 query 属性指定要匹配的地址或搜索字符串。如果启用了 autoUpdate,则模型将自动更新其输出。否则,可以使用 update 方法。默认情况下,禁用了 autoUpdate

GeocodeModel 中存储和返回的数据由 Location 对象组成,以具有“locationData”角色名的列表形式。有关其结构和大致的详细信息,请参阅 Location 的文档。

示例用法

以下代码段分为两部分,首先声明对象,其次是使用该对象的简短程序代码。我们将geocodeModel的autoUpdate属性设置为false,一旦查询设置好就调用update方法。在这种情况下,因为我们使用了query中的字符串值,即使启用了autoUpdate,也只会发生一次更新。然而,如果我们提供了一个Address对象,我们可能在设置其属性时意外触发多次请求。

Plugin {
    id: aPlugin
}

GeocodeModel {
    id: geocodeModel
    plugin: aPlugin
    autoUpdate: false
}
{
    geocodeModel.query = "53 Brandl St, Eight Mile Plains, Australia"
    geocodeModel.update()
}

属性文档

autoUpdate : bool

此属性控制模型是否对其附加查询的更改自动更新。此属性的默认值是false。

如果将此值设置为'true'并使用Address或coordinate作为查询,请注意,该对象的任何属性更改都会触发新的请求。如果您在自动更新已启用的情况下调整对象的大量属性,这可能会生成大量无效(以后会被丢弃)的请求。


bounds : geoshape

此属性包含用于限制结果为该区域内的结果的边界区域。如果查询只填写了一部分,这将特别有用,因为服务将尝试(反向)查找指定数据的所有匹配项。

接受类型为georectanglegeocircle


count : int [只读]

此属性包含模型当前有多少个位置。在其他用途中,您可以使用此值通过GeocodeModel::get方法访问位置。


error : enumeration [只读]

此只读属性包含地理编码请求的最新错误值。

  • GeocodeModel.NoError - 未发生错误。
  • GeocodeModel.CombinationError - 在从多个来源组合结果时发生错误。
  • GeocodeModel.CommunicationError - 与服务提供商通信时发生错误。
  • GeocodeModel.EngineNotSetError - 模型的插件属性未设置,或者没有与插件关联的地理编码管理器。
  • GeocodeModel.MissingRequiredParameterError - 未指定必需的参数。
  • GeocodeModel.ParseError - 服务提供商的响应格式不可识别。
  • GeocodeModel.UnknownError - 发生了一个不适用于其他任何类别的错误。
  • GeocodeModel.UnknownParameterError - 插件没有识别出它给出的参数之一。
  • GeocodeModel.UnsupportedOptionError - 请求的操作不受地理编码提供程序的支持。这可能发生在加载的引擎不支持特定的地理编码请求,如反向地理编码的情况下。

errorString : string [只读]

这个只读属性保存了最新地理编码错误的文本表示。如果没有发生错误或模型已被重置,则返回空字符串。

如果出现错误但没有关联的文本表示,也可能返回空字符串。


limit : int

此属性保存结果的最多数量。限制(limit)和offset值仅适用于免费字符串地理编码(即在使用搜索查询中的地址或坐标时,不考虑这些值)。

如果limit为-1,将返回整个结果集,否则将返回最多limit个结果。可以使用limit和offset结果一起实现分页。


offset : int

此属性指示不返回结果中前'offset'个数字。限制(limit)和offset值仅适用于免费字符串地理编码(即在使用搜索查询中的地址或坐标时,不考虑这些值)。

限制和offset结果可以一起使用来实现分页。


plugin : Plugin

此属性包含提供实际地理编码服务的插件。请注意,并非所有插件都提供地理编码(例如,可能只提供路由或地图)。

另请参阅Plugin


query : QVariant

此属性包含地理编码请求的数据。该属性接受三种类型的查询,这些查询确定数据和要执行的操作类型

  • 地址 - 地理编码(地址到坐标)
  • coordinate - 反向地理编码(坐标到地址)
  • 字符串 - 地理编码(地址到坐标)

status : enumeration [只读]

此只读属性保存模型当前状态。


信号文档

locationsChanged()

当模型中的位置改变时触发此信号。

注意:相应的事件处理器是onLocationsChanged

另请参阅count


方法文档

void cancel()

取消所有挂起的请求并清除错误。模型状态将被设置为GeocodeModel.Null或GeocodeModel.Ready。


Location get(int index)

返回指定索引处的Location对象。使用count属性检查可用的位置数量。位置从零开始索引,所以可访问的范围是0...(count - 1)。

如果您访问超出范围,将返回零(null对象)并发出警告。


void reset()

重置模型。所有位置数据将清除,未完成的请求将中止,并清除可能的错误。模型状态将设置为GeocodeModel.Null


void update()

指示GeocodeModel更新其数据。当autoUpdate被禁用时,此操作最为有用,以便在查询发生变化时强制刷新。


© 2024 Qt公司。本文件包含的文档贡献版权属于各自的所有者。本文件提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证 version 1.3 的条款提供许可的。Qt和相关的标志是芬兰及其在其他国家和地区的 The Qt Company Ltd 的商标。所有其他商标均属于各自所有者的财产。