Тип QML RouteModel
Тип RouteModel предоставляет доступ к маршрутам. Подробнее...
| Заявление об импорте: | import QtLocation 5.15 |
| С момента: | QtLocation 5.5 |
Свойства
- autoUpdate : bool
- count : int
- error : перечисление
- errorString : строка
- measurementSystem : Locale::MeasurementSystem
- plugin : Плагин
- query : RouteQuery
- status : перечисление
Методы
Подробное описание
Тип RouteModel используется в качестве части группировки модель/представление для получения географических маршрутов от поставщика back-end. Маршруты включают данные о маршрутах движения между двумя точками, пеших маршрутах с несколькими промежуточными точками и различных других аналогичных концепциях. Он работает так же, как и другие типы моделей в QML (см., например, ListModel и XmlListModel), и взаимодействует с представлениями, такими как MapItemView и ListView.
Как и Map и GeocodeModel, все данные для работы RouteModel поступают от плагина сервисов. Это содержится в свойстве plugin, и это свойство должно быть установлено перед тем, как RouteModel сможет выполнить какие-либо полезные действия.
После установки плагина создайте RouteQuery с соответствующими промежуточными точками и другими параметрами и установите свойство query RouteModel. Если 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 с включенным autoUpdate, это может генерировать большое количество бесполезных (и впоследствии отбрасываемых) запросов.
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 по указанному index. Используйте свойство count, чтобы проверить количество доступных маршрутов. Маршруты индексируются с нуля, поэтому доступный диапазон — 0...(count - 1).
При обращении за пределами границ возвращается ноль (объект null) и выдается сообщение об ошибке.
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.15/qml-qtlocation-routemodel.html