Тип RouteModel QML
Тип RouteModel предоставляет доступ к маршрутам. Подробнее...
| Заявление об импорте: | import QtLocation 5.13 |
| С момента: | QtLocation 5.5 |
Свойства
- autoUpdate : bool
- count : int
- error : перечисление
- errorString : строка
- measurementSystem : Locale::MeasurementSystem
- plugin : Плагин
- query : RouteQuery
- status : перечисление
Методы
Подробное описание
Тип RouteModel используется как часть группировки модель/представление для получения географических маршрутов от поставщика backend. Маршруты содержат данные о маршрутах движения между двумя точками, маршрутах пешком с несколькими точками, и различных других похожих понятиях. Он работает примерно так же, как и другие типы моделей в QML (например, ListModel), и взаимодействует с представлениями, такими как MapItemView и ListView.
Как и Map и GeocodeModel, все данные для работы RouteModel поступают от плагина сервиса. Он содержится в свойстве plugin, и это свойство должно быть установлено, прежде чем RouteModel сможет выполнять какие-либо полезные действия.
После установки плагина создайте RouteQuery с соответствующими контрольными точками и другими настройками, и установите свойство RouteModel's 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 с включенным 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 get(index)
Возвращает 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.13/qml-qtlocation-routemodel.html