Тип QML GeocodeModel
Тип GeocodeModel предоставляет поддержку операций поиска, связанных с географической информацией. Подробнее...
| Заявление об импорте: | import QtLocation 5.15 |
| С момента: | QtLocation 5.5 |
Свойства
- autoUpdate : bool
- bounds : geoshape
- count : int
- error : перечисление
- errorString : строка
- limit : int
- offset : int
- plugin : Plugin
- query : QVariant
- status : перечисление
Сигналы
Методы
Подробное описание
Тип GeocodeModel используется в составе группировки модель/представление для сопоставления адресов или поисковых строк с географическими местоположениями. Способ использования или отображения сгенерированных географических местоположений определяется любыми представлениями, подключенными к GeocodeModel (например, MapItemView или ListView).
Как и Map и RouteModel, все данные для работы GeocodeModel поступают от плагина сервиса. Он содержится в свойстве plugin, и это свойство должно быть установлено, прежде чем GeocodeModel сможет выполнять полезную работу.
После установки плагина свойство query может быть использовано для указания адреса или поисковой строки для сопоставления. Если autoUpdate включен, модель автоматически обновляет свой вывод. В противном случае можно использовать метод update. По умолчанию autoUpdate выключен.
Данные, хранящиеся и возвращаемые в GeocodeModel, состоят из объектов Location в виде списка с именем роли «locationData». Дополнительные сведения о структуре и содержимом объекта Location см. в документации к Location.
Пример использования
Следующий фрагмент состоит из двух частей, демонстрирующих во-первых объявление объектов, а во-вторых небольшой фрагмент процедурного кода, использующего его. Мы устанавливаем свойство autoUpdate модели geocodeModel в 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' и использовать адрес или координату в качестве запроса, обратите внимание, что любое изменение свойств объекта инициирует новый запрос. Если вы изменяете множество свойств объекта, когда autoUpdate включен, это может привести к генерации большого числа бесполезных (и впоследствии отбрасываемых) запросов.
bounds : geoshape
Это свойство содержит ограничивающую область, используемую для ограничения результатов теми, которые находятся в указанной области. Это особенно полезно, если запрос заполнен только частично, так как служба попытается (обратное) геокодировать все совпадения для указанных данных.
Допускаются типы georectangle и geocircle.
count : int
Это свойство содержит количество местоположений, имеющихся в данный момент в модели. Среди прочего, вы можете использовать это значение при обращении к местоположениям с помощью метода GeocodeModel::get.
error : перечисление
Это свойство только для чтения содержит последнее значение ошибки запроса геокодирования.
- GeocodeModel.NoError - Ошибка не произошла.
- GeocodeModel.CombinationError - Ошибка произошла во время объединения результатов из нескольких источников.
- GeocodeModel.CommunicationError - Ошибка произошла во время связи с поставщиком услуг.
- GeocodeModel.EngineNotSetError - Свойство plugin модели не было установлено или нет менеджера геокодирования, связанного с плагином.
- GeocodeModel.MissingRequiredParameterError - Не был указан обязательный параметр.
- GeocodeModel.ParseError - Ответ от поставщика услуг был в нераспознаваемом формате.
- GeocodeModel.UnknownError - Произошла ошибка, не попадающая ни в одну из других категорий.
- GeocodeModel.UnknownParameterError - Плагин не распознал один из переданных ему параметров.
- GeocodeModel.UnsupportedOptionError - Запрошенная операция не поддерживается поставщиком геокодирования. Это может произойти, когда загруженный движок не поддерживает определенный запрос геокодирования, например, обратное геокодирование.
errorString : строка
Это свойство только для чтения содержит текстовое представление последней ошибки геокодирования. Если ошибок не произошло или модель была сброшена, возвращается пустая строка.
Пустая строка также может быть возвращена, если произошла ошибка, для которой нет связанного текстового представления.
limit : int
Это свойство содержит максимальное количество результатов. Значения limit и offset применимы только к свободному геокодированию по строкам (то есть они не учитываются при использовании адресов или координат в запросе поиска).
Если limit равен -1, возвращается весь набор результатов, иначе возвращается не более limit результатов. Результаты limit и offset могут быть использованы вместе для реализации постраничного отображения.
offset : int
Это свойство указывает на то, что не должны возвращаться первые 'offset' результатов. Значения limit и offset применимы только к свободному геокодированию по строкам (то есть они не учитываются при использовании адресов или координат в запросе поиска).
Результаты limit и offset могут быть использованы вместе для реализации постраничного отображения.
plugin : Plugin
Это свойство содержит плагин, который предоставляет фактический сервис геокодирования. Обратите внимание, что не все плагины обязательно предоставляют геокодирование (например, могут предоставлять только маршрутизацию или карты).
См. также Plugin.
query : QVariant
Это свойство содержит данные запроса геокодирования. Свойство принимает три типа запросов, которые определяют и данные, и тип выполняемого действия:
- Адрес - Геокодирование (адрес в координаты)
- координата - Обратное геокодирование (координата в адрес)
- строка - Геокодирование (адрес в координаты)
status : перечисление
Это свойство только для чтения содержит текущий статус модели.
- GeocodeModel.Null - Не было выпущено запросов на геокодирование или был вызван reset.
- GeocodeModel.Ready - Запрос(ы) на геокодирование завершился(лись) успешно.
- GeocodeModel.Loading - Запрос на геокодирование был выпущен, но еще не завершен
- GeocodeModel.Error - Произошла ошибка геокодирования, подробности находятся в error и errorString
Документация по сигналам
locationsChanged()
Этот сигнал излучается, когда местоположения в модели изменились.
Примечание: Соответствующий обработчик — onLocationsChanged.
См. также count.
Документация по методам
void cancel()
Отменяет все активные запросы и очищает ошибки. Состояние модели будет установлено либо в GeocodeModel.Null, либо в GeocodeModel.Ready.
Возвращает Location по заданному index. Используйте свойство count для проверки доступного количества местоположений. Местоположения индексируются с нуля, поэтому доступный диапазон составляет 0...(count - 1).
Если обращение выходит за пределы границ, возвращается ноль (объект null), и выдаётся предупреждение.
void reset()
Сбрасывает модель. Все данные о местоположении очищаются, все активные запросы прерываются, и возможные ошибки очищаются. Состояние модели будет установлено в GeocodeModel.Null
void update()
Инструктирует GeocodeModel обновить свои данные. Это наиболее полезно, когда свойство autoUpdate отключено, чтобы принудительно обновить данные после изменения запроса.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtlocation-geocodemodel.html