Тип QML RouteModel
Тип RouteModel предоставляет доступ к маршрутам. Подробнее...
| Заявление об импорте: | import QtLocation 5.14 |
| С: | QtLocation 5.5 |
Свойства
- autoUpdate : bool
- count : int
- error : перечисление
- errorString : строка
- measurementSystem : Locale::MeasurementSystem
- plugin : Плагин
- query : RouteQuery
- status : перечисление
Методы
Подробное описание
Тип RouteModel используется как часть группировки модель/вид для получения географических маршрутов от поставщика на стороне сервера. Маршруты включают данные о направлении движения между двумя точками, направлении движения пешком с несколькими контрольными точками и различных других подобных понятиях. Он работает так же, как и другие типы моделей в QML (см., например, ListModel и XmlListModel), и взаимодействует с представлениями, такими как MapItemView и ListView.
Как и Map и GeocodeModel, все данные для работы RouteModel поступают от плагина сервисов. Это содержится в свойстве plugin, и оно должно быть задано перед тем, как RouteModel сможет выполнить полезную работу.
После установки плагина создайте RouteQuery с соответствующими контрольными точками и другими настройками и задайте свойство RouteModel query. Если autoUpdate включено, обновление будет выполняться автоматически. В противном случае можно использовать метод update. По умолчанию autoUpdate выключен.
Данные, хранящиеся и возвращаемые в RouteModel, состоят из объектов Route в виде списка с именем роли "routeData". См. документацию по Route для получения дополнительной информации о его структуре и содержании.
Пример использования
Следующий фрагмент состоит из двух частей: во-первых, объявление объектов, а во-вторых, небольшой фрагмент процедурного кода, использующего их. Мы устанавливаем свойство autoUpdate routeModel в значение false и вызываем update после настройки запроса, чтобы избежать ненужных дополнительных запросов в середине настройки запроса.
Plugin {
id: aPlugin
name: "osm"
}
RouteQuery {
id: aQuery
}
RouteModel {
id: routeModel
plugin: aPlugin
query: aQuery
autoUpdate: false
} {
aQuery.addWaypoint(...)
aQuery.addWaypoint(...)
aQuery.travelModes = ...
routeModel.update()
} Документация по свойствам
autoUpdate : bool
Это свойство управляет тем, обновляет ли модель автоматически в ответ на изменения в присоединенном RouteQuery. Значение по умолчанию этого свойства равно false.
Если установить это значение в 'true', обратите внимание, что любое изменение объекта RouteQuery, установленного в свойстве query, приведет к отправке нового запроса. Если вы изменяете многие свойства объекта RouteQuery с включенным автообновлением, это может генерировать большое количество бесполезных (и впоследствии отбрасываемых) запросов.
count : int
Это свойство содержит количество маршрутов, имеющихся в настоящее время в модели. Среди прочего, вы можете использовать это значение при обращении к маршрутам через метод QtLocation::RouteModel::get.
error : перечисление
Это свойство только для чтения, содержащее последнее значение ошибки запроса маршрутизации.
- RouteModel.NoError - Ошибка не произошла.
- RouteModel.CommunicationError - Произошла ошибка при общении с поставщиком сервиса.
- RouteModel.EngineNotSetError - Свойство plugin модели не было установлено или с плагином не связан менеджер маршрутизации.
- RouteModel.MissingRequiredParameterError - Требуемый параметр не был указан.
- RouteModel.ParseError - Ответ от поставщика сервиса имел нераспознаваемый формат.
- RouteModel.UnknownError - Произошла ошибка, которая не подходит ни к одной из других категорий.
- RouteModel.UnknownParameterError - Плагин не распознал один из переданных параметров.
- RouteModel.UnsupportedOptionError - Запрашиваемая операция не поддерживается поставщиком маршрутизации. Это может произойти, когда загруженный движок не поддерживает определенный тип запроса маршрутизации.
errorString : строка
Это свойство только для чтения, содержащее текстовое представление последней ошибки маршрутизации. Если ошибка не произошла или модель была сброшена, возвращается пустая строка.
Пустая строка также может быть возвращена, если произошла ошибка, для которой нет связанного текстового представления.
measurementSystem : Locale::MeasurementSystem
Это свойство содержит систему измерения, которая будет использоваться при расчете маршрута. Это свойство изменяется при изменении свойства Plugin::locales плагина plugin.
Если устанавливать это свойство, его необходимо установить после установки свойства plugin.
plugin : Плагин
Это свойство содержит плагин, предоставляющий фактический сервис маршрутизации. Обратите внимание, что не все плагины обязательно предоставляют маршрутизацию (например, могут предоставлять только геокодирование или карты).
Допустимый плагин должен быть установлен перед тем, как RouteModel сможет выполнять какие-либо полезные операции.
См. также Плагин.
query : RouteQuery
Это свойство содержит данные запроса маршрута. Основные данные — координаты контрольных точек и возможные дополнительные предпочтения (средства передвижения, объекты, которые нужно избежать на маршруте и т. д.).
status : перечисление
Это свойство только для чтения, содержащее текущий статус модели.
- RouteModel.Null - Не было выдано ни одного запроса на маршрут или был вызван reset.
- RouteModel.Ready - Запрос(ы) на маршрут завершился(лись) успешно.
- RouteModel.Loading - Запрос на маршрут был выдан, но еще не завершен
- RouteModel.Error - Произошла ошибка маршрутизации, подробности находятся в error и errorString
Документация по методам
void cancel()
Отменяет все незавершенные запросы и очищает ошибки. Статус модели будет установлен либо в RouteModel.Null, либо в RouteModel.Ready.
Route get(index)
Возвращает Route по указанному index. Используйте свойство count для проверки количества доступных маршрутов. Маршруты индексируются с нуля, поэтому доступный диапазон — 0...(count - 1).
При обращении за пределами границ возвращается ноль (нулевой объект), и выдается предупреждение.
void reset()
Сбрасывает модель. Все данные маршрута очищаются, любые незавершенные запросы прерываются, а возможные ошибки очищаются. Статус модели будет установлен в RouteModel.Null
void update()
Инструктирует RouteModel обновить свои данные. Это наиболее полезно, когда autoUpdate отключен, чтобы принудительно обновить данные, когда запрос был изменен.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtlocation-routemodel.html