GeocodeModel QML Type
GeocodeModel 类型为与地理信息相关的搜索操作提供了支持。更多内容...
| Import Statement: | import QtLocation 6.12 |
| Since: | QtLocation 5.5 |
属性
- autoUpdate : bool
- bounds : geoShape
- count : int
- error : enumeration
- errorString : string
- limit : int
- offset : int
- plugin : Plugin
- query : QVariant
- status : enumeration
信号
方法
详细说明
GeocodeModel 类型作为模型/视图组合的一部分,用于将地址或搜索字符串与地理位置进行匹配。生成的地理位置如何被使用或显示,由附加到 GeocodeModel 上的任何视图决定(例如MapItemView 或ListView )。
与Map 和RouteModel 一样,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 或geoCoordinate 作为查询,请注意:对象属性的任何微小变化都会触发发送新的请求。如果在启用 autoUpdate 的情况下调整对象的多个属性,可能会产生大量无用的(且随后会被丢弃的)请求。
bounds : geoShape
该属性存储用于将结果限制在该区域内的边界区域。当查询仅部分填写时,此功能特别有用,因为该服务将尝试对指定数据的所有匹配结果进行(反向)地理编码。
支持的类型包括geoRectangle 和geoCircle 。
count : int [read-only]
该属性保存了模型当前拥有的位置数量。除其他用途外,您还可以在通过 `GeocodeModel::get ` 方法访问位置时使用该值。
error : enumeration [read-only]
此只读属性存储地理编码请求的最新错误值。
- GeocodeModel.NoError - 未发生错误。
- GeocodeModel.xml-ph-0000@deepl.internal——未发生错误。.CombinationError——在合并来自多个来源的结果时发生错误。
- GeocodeModel.CommunicationError - 与服务提供商通信时发生错误。
- GeocodeModel.EngineNotSetError - 模型的插件属性未设置,或者该插件未关联任何地理编码管理器。
- GeocodeModel.MissingRequiredParameterError - 未指定必填参数。
- GeocodeModel.ParseError - 服务提供商的响应格式无法识别。
- GeocodeModel.UnknownError - 发生了一项无法归入其他任何类别的错误。
- GeocodeModel.UnknownParameterError - 插件无法识别其接收到的某个参数。
- GeocodeModel.UnsupportedOptionError - 地理编码提供商不支持所请求的操作。当加载的引擎不支持特定地理编码请求(例如反向地理编码)时,可能会发生这种情况。
errorString : string [read-only]
此只读属性存储最新地理编码错误的文本表示形式。如果未发生错误或模型已被重置,则返回空字符串。
如果发生的错误没有关联的文本描述,也可能返回空字符串。
limit : int
该属性用于指定结果的最大数量。limit 和offset 的值仅适用于自由字符串地理编码(即在搜索查询中使用地址或坐标时,不会考虑这些值)。
如果 limit 值为 -1,则将返回全部结果集;否则,最多返回 limit 个结果。limit 和offset 结果可结合使用以实现分页功能。
offset : int
此属性用于指定不返回结果中前“offset”个条目。limit 和offset值仅适用于自由字符串地理编码(即在搜索查询中使用地址或坐标时,这些值不会被考虑)。
limit 和 offset 的结果可结合使用以实现分页功能。
plugin : Plugin
该属性存储提供实际地理编码服务的插件。请注意,并非所有插件都一定提供地理编码功能(例如,有些插件可能仅提供路线规划或地图功能)。
另请参阅 Plugin 。
query : QVariant
该属性包含地理编码请求的数据。该属性支持三种查询类型,这些查询类型既决定了数据内容,也决定了要执行的操作类型:
- 地址 - 地理编码(地址转坐标)
- geoCoordinate - 反向地理编码(坐标转地址)
- 字符串 - 地理编码(地址转坐标)
status : enumeration [read-only]
此只读属性保存了模型的当前状态。
- GeocodeModel.Null - 尚未发出任何地理编码请求,或已调用reset 方法。
- GeocodeModel.Ready - 地理编码请求已成功完成。
- GeocodeModel.Loading - 已发出地理编码请求,但尚未完成
- GeocodeModel.Error - 发生地理编码错误,详细信息请参见error 以及errorString
Signal 文档中。
locationsChanged()
当模型中的位置发生变化时,会触发此信号。
注意: 相应的处理程序 是onLocationsChanged 。
另请参阅 count 。
方法文档
void cancel()
取消所有待处理的请求并清除错误。模型状态将被设置为GeocodeModel.Null或GeocodeModel.Ready。
Location get(int index)
返回给定index 处的Location 。使用count 属性检查可用位置的数量。位置从零开始索引,因此可访问的范围为0...(count - 1)。
如果访问超出范围,将返回零(空对象)并发出警告。
void reset()
重置模型。所有位置数据将被清除,所有待处理的请求将被中止,并清除可能存在的错误。模型状态将设置为GeocodeModel.Null。
void update()
指示GeocodeModel 更新其数据。当autoUpdate 被禁用时,此操作最为有用,可在查询内容发生变化时强制刷新数据。
© 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.