Тип QML GeocodeModel
Тип GeocodeModel предоставляет поддержку операций поиска, связанных с географической информацией. Подробнее...
| Заявление об импорте: | import QtLocation 5.3 |
| С момента: | Qt Location 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 см. документацию по нему.
Пример использования
Следующий фрагмент состоит из двух частей: во-первых, объявление объектов, а во-вторых, короткий фрагмент процедурного кода, использующего его. Мы устанавливаем свойство 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()
Этот сигнал испускается, когда местоположения в модели изменились.
См. также count.
Документация по методу
void cancel()
Отменяет все активные запросы и очищает ошибки. Состояние модели будет установлено либо в GeocodeModel.Null, либо в GeocodeModel.Ready.
Location get(int)
Возвращает Location по указанному индексу. Используйте свойство 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.9/qml-qtlocation-geocodemodel.html