Тип QML RouteModel
Тип RouteModel предоставляет доступ к маршрутам. Подробнее...
| Заявление об импорте: | import QtLocation 5.3 |
| С: | Qt Location 5.5 |
Свойства
- autoUpdate : bool
- count : int
- error : перечисление
- errorString : строка
- measurementSystem : Locale::MeasurementSystem
- plugin : Плагин
- query : RouteQuery
- status : перечисление
Методы
Подробное описание
Тип RouteModel используется как часть группировки модель/представление для получения географических маршрутов от поставщика backend. Маршруты включают данные о направлениях движения между двумя точками, направлениях пешком с несколькими контрольными точками и различных других похожих понятиях. Он функционирует аналогично другим типам моделей в QML (см., например, ListModel и XmlListModel) и взаимодействует с представлениями, такими как 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 : Plugin
Это свойство содержит плагин, который предоставляет фактическую службу маршрутизации. Обратите внимание, что все плагины не обязательно предоставляют маршрутизацию (например, могут предоставлять только геокодирование или карты).
Должен быть установлен допустимый плагин, прежде чем RouteModel сможет выполнять какие-либо полезные операции.
См. также Плагин.
query : RouteQuery
Это свойство содержит данные запроса маршрута. Основные данные — это координаты контрольных точек и возможные дополнительные предпочтения (средства передвижения, вещи, которые следует избегать по маршруту и т. д.).
status : перечисление
Это свойство только для чтения содержит текущий статус модели.
- RouteModel.Null - Запросы маршрута не были отправлены или был вызван метод reset.
- RouteModel.Ready - Запрос(ы) маршрута завершились успешно.
- RouteModel.Loading - Запрос маршрута отправлен, но еще не завершен
- RouteModel.Error - Произошла ошибка маршрутизации, подробности находятся в error и errorString
Документация по методам
void cancel()
Отменяет все активные запросы и очищает ошибки. Состояние модели будет установлено либо в RouteModel.Null, либо в RouteModel.Ready.
void get(int)
Возвращает Маршрут по заданному индексу. Используйте свойство 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/archives/qt-5.6/qml-qtlocation-routemodel.html