Тип QML GeocodeModel
Тип GeocodeModel предоставляет поддержку операций поиска, связанных с географической информацией. Подробнее...
| Заявление об импорте: | import QtLocation 5.14 |
| С момента: | 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 - Не было отправлено запросов geocode или был вызван метод reset.
- GeocodeModel.Ready - Запросы geocode завершились успешно.
- GeocodeModel.Loading - Запрос geocode отправлен, но еще не завершен
- GeocodeModel.Error - Произошла ошибка геокодирования, подробности находятся в error и errorString
Документация по сигналам
locationsChanged()
Этот сигнал излучается, когда местоположения в модели изменились.
См. также count.
Документация по методам
void cancel()
Отменяет все активные запросы и очищает ошибки. Состояние модели будет установлено в GeocodeModel.Null или GeocodeModel.Ready.
Location get(index)
Возвращает Location по заданному index. Используйте свойство 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/qt-5.14/qml-qtlocation-geocodemodel.html