Тип QML RouteModel
Тип RouteModel предоставляет доступ к маршрутам. Подробнее...
| Заявление об импорте: | import QtLocation 5.12 |
| С момента: | QtLocation 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, как только query будет настроен, чтобы избежать ненужных дополнительных запросов в середине настройки query.
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(int)
Возвращает маршрут по заданному индексу. Используйте свойство count для проверки доступного количества маршрутов. Маршруты индексируются с нуля, поэтому доступный диапазон — 0...(count - 1).
Если вы обратитесь к элементу за пределами допустимого диапазона, будет возвращен ноль (нулевой объект), и будет выведено предупреждение.
void reset()
Сбрасывает модель. Все данные о маршрутах очищаются, любые активные запросы прерываются, и возможные ошибки очищаются. Статус модели будет установлен в RouteModel.Null
void update()
Инструктирует RouteModel обновить свои данные. Это наиболее полезно, когда autoUpdate отключен, чтобы принудительно обновить данные, когда query был изменен.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtlocation-routemodel.html