Тип QML GeocodeModel
Тип GeocodeModel предоставляет поддержку операций поиска, связанных с географической информацией. Подробнее...
| Заявление об импорте: | import QtLocation 5.13 |
| С момента: | 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 : enumeration
Это свойство только для чтения, содержащее последнее значение ошибки запроса геокодирования.
- GeocodeModel.NoError — Ошибка не произошла.
- GeocodeModel.CombinationError — Произошла ошибка при объединении результатов из нескольких источников.
- GeocodeModel.CommunicationError — Произошла ошибка при общении с поставщиком услуг.
- GeocodeModel.EngineNotSetError — Свойство плагина модели не было установлено или с плагином не ассоциирован менеджер геокодирования.
- GeocodeModel.MissingRequiredParameterError — Не был указан обязательный параметр.
- GeocodeModel.ParseError — Ответ от поставщика услуг был в нераспознаваемом формате.
- GeocodeModel.UnknownError — Произошла ошибка, которая не подходит ни к одной из других категорий.
- GeocodeModel.UnknownParameterError — Плагин не распознал один из переданных ему параметров.
- GeocodeModel.UnsupportedOptionError — Запрашиваемая операция не поддерживается поставщиком геокодирования. Это может произойти, когда загруженный движок не поддерживает определенный запрос геокодирования, например, обратное геокодирование.
errorString : string
Это свойство только для чтения, содержащее текстовое представление последней ошибки геокодирования. Если ошибка не произошла или модель была сброшена, возвращается пустая строка.
Пустая строка также может быть возвращена, если произошла ошибка, у которой нет связанного текстового представления.
limit : int
Это свойство содержит максимальное количество результатов. Значения limit и offset применимы только к геокодированию по строковому запросу (они не учитываются при использовании адресов или координат в запросе поиска).
Если limit равен -1, будет возвращен весь набор результатов, иначе — не более limit результатов. Значения limit и offset можно использовать вместе для реализации постраничного отображения.
offset : int
Это свойство указывает на то, что не следует возвращать первые 'offset' результатов. Значения limit и offset применимы только к геокодированию по строковому запросу (они не учитываются при использовании адресов или координат в запросе поиска).
Значения limit и offset можно использовать вместе для реализации постраничного отображения.
plugin : Plugin
Это свойство содержит плагин, предоставляющий фактическую услугу геокодирования. Обратите внимание, что не все плагины обязательно предоставляют геокодирование (они могут, например, предоставлять только маршрутизацию или карты).
См. также Plugin.
query : QVariant
Это свойство содержит данные запроса геокодирования. Свойство принимает три типа запросов, которые определяют как данные, так и тип выполняемого действия:
- Адрес — Геокодирование (адрес в координаты)
- coordinate — Обратное геокодирование (координаты в адрес)
- строка — Геокодирование (адрес в координаты)
status : enumeration
Это свойство только для чтения, содержащее текущий статус модели.
- GeocodeModel.Null — Не было выполнено ни одного запроса геокодирования или был вызван метод reset.
- GeocodeModel.Ready — Запрос(ы) геокодирования успешно завершены.
- GeocodeModel.Loading — Запрос геокодирования выполнен, но еще не завершен
- GeocodeModel.Error — Произошла ошибка геокодирования, подробности находятся в error и errorString
Документация сигналов
locationsChanged()
Этот сигнал излучается, когда местоположения в модели были изменены.
См. также количество.
Документация методов
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.13/qml-qtlocation-geocodemodel.html