Тип QML GeocodeModel
Тип GeocodeModel обеспечивает поддержку операций поиска, связанных с географической информацией. Подробнее...
| Заявление импорта: | import QtLocation 5.11 |
| С тех пор: | QtLocation 5.5 |
Свойства
- autoUpdate : bool
- bounds : geoshape
- count : int
- error : перечисление
- errorString : строка
- limit : int
- offset : int
- 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 : Плагин
Это свойство содержит плагин, который предоставляет фактическую службу геокодирования. Обратите внимание, что не все плагины обязательно предоставляют геокодирование (например, могут предоставлять только маршруты или карты).
См. также Плагин.
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).
Если вы обращаетесь за пределами допустимого диапазона, возвращается ноль (нулевой объект) и выдаётся предупреждение.
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/archives/qt-5.11/qml-qtlocation-geocodemodel.html