Тип QML PositionSource
Тип PositionSource предоставляет текущее положение устройства. Подробнее...
| Заявление об импорте: | import QtPositioning 5.14 |
| С: | Qt 5.2 |
Свойства
- active : bool
- name : string
- nmeaSource : url
- parameters : list<PluginParameter>
- position : Position
- preferredPositioningMethods : перечисление
- sourceError : перечисление
- supportedPositioningMethods : перечисление
- updateInterval : int
- valid : bool
Сигналы
Методы
- Variant backendProperty(name)
- bool setBackendProperty(name, Variant value)
- start()
- stop()
- update()
Подробное описание
Тип PositionSource предоставляет информацию о текущем положении устройства пользователя. Положение доступно в виде типа Position, который содержит все стандартные параметры, обычно доступные из GPS и других подобных систем, включая долготу, широту, скорость и подробности точности.
Поскольку разные источники положения доступны на разных платформах и устройствах, они классифицируются по основному типу (спутниковый, неспутниковый и все методы позиционирования). Доступные методы для текущей платформы можно перечислить в свойстве supportedPositioningMethods.
Чтобы указать, какие методы подходят для вашего приложения, задайте свойство preferredPositioningMethods. Если предпочтительные методы недоступны, вместо этого будет выбран источник данных местоположения по умолчанию для платформы. Если источник по умолчанию недоступен (потому что он не установлен для платформы выполнения или отключен), свойство valid будет установлено в false.
Свойство updateInterval можно использовать для указания частоты получения обновлений положения вашим приложением. Методы start(), stop() и update() можно использовать для управления работой PositionSource, а также свойство active, которое при установке эквивалентно вызову start() или stop().
Когда PositionSource активен, обновления положения можно получить, просто используя свойство position в привязке (как значение свойства другого элемента) или предоставив реализацию обработчика сигнала onPositionChanged.
Пример использования
Следующий пример демонстрирует простой PositionSource, используемый для получения обновлений каждую секунду и вывода долготы и широты в консоль.
PositionSource {
id: src
updateInterval: 1000
active: true
onPositionChanged: {
var coord = src.position.coordinate;
console.log("Coordinate:", coord.longitude, coord.latitude);
}
} Пример приложения GeoFlickr показывает, как использовать PositionSource в вашем приложении для получения локальных данных для пользователей из веб-службы REST.
См. также QtPositioning::Position, QGeoPositionInfoSource и PluginParameter.
Документация по свойствам
active : bool
Это свойство указывает, активен ли источник положения. Установка этого свойства в false эквивалентна вызову stop, а установка в true эквивалентна вызову start.
См. также start, stop и update.
name : string
Это свойство содержит уникальное внутреннее имя плагина, который в настоящее время предоставляет информацию о местоположении.
Установка свойства заставляет PositionSource использовать определенный поставщик позиционирования. Если PositionSource активен в момент изменения имени свойства, он станет неактивным. Если указанный поставщик позиционирования не может быть загружен, источник положения станет недоступным.
Изменение свойства name может также привести к изменению свойств updateInterval, supportedPositioningMethods и preferredPositioningMethods.
nmeaSource : url
Это свойство содержит источник данных NMEA (National Marine Electronics Association) для спецификации положения (файл). Одна из целей этого свойства — удобство разработки.
Установка этого свойства переопределит любой другой источник положения. В настоящее время поддерживаются только файлы, локальные для файла .qml. Источник NMEA создается в режиме моделирования, что означает, что данные и временная информация в данных источника NMEA используются для предоставления обновлений положения с частотой, с которой данные изначально записывались.
Если для объекта PositionSource установлено свойство nmeaSource, нет способа вернуться к источникам, отличным от файлов.
[default] parameters : list<PluginParameter>
Это свойство содержит список параметров плагина.
Это свойство было введено в QtPositioning 5.14.
position : Position
Это свойство содержит последние известные данные о местоположении. Это свойство только для чтения.
Тип Position имеет различные члены местоположения, чья валидность может быть проверена соответствующими функциями валидации (например, иногда обновление не содержит данных о скорости или высоте).
Однако всякий раз, когда был получен сигнал positionChanged, можно считать, что члены position::coordinate::latitude, position::coordinate::longitude и position::timestamp действительны.
См. также start, stop и update.
preferredPositioningMethods : enumeration
Это свойство содержит предпочтительные методы позиционирования текущего источника.
- PositionSource.NoPositioningMethods - Нет предпочтительных методов позиционирования.
- PositionSource.SatellitePositioningMethods - Следует предпочесть спутниковые методы позиционирования, такие как GPS.
- PositionSource.NonSatellitePositioningMethods - Следует предпочесть методы, не основанные на спутниках.
- PositionSource.AllPositioningMethods - Любые методы позиционирования приемлемы.
sourceError : enumeration
Это свойство содержит ошибку, которая произошла в последний раз с PositionSource.
- PositionSource.AccessError - Настройка подключения к удаленному бэкенду позиционирования не удалась, поскольку у приложения не было необходимых привилегий.
- PositionSource.ClosedError - Бэкенд позиционирования закрыл подключение, что происходит, например, если пользователь отключает службы определения местоположения. Как только служба определения местоположения будет повторно включена, возобновятся регулярные обновления.
- PositionSource.NoError - Ошибка не произошла.
- PositionSource.UnknownSourceError - Произошла неизвестная ошибка.
- PositionSource.SocketError - Произошла ошибка при подключении к источнику nmea с помощью сокета.
supportedPositioningMethods : enumeration
Это свойство содержит поддерживаемые методы позиционирования текущего источника.
- PositionSource.NoPositioningMethods - Нет поддерживаемых методов позиционирования (нет источника).
- PositionSource.SatellitePositioningMethods - Поддерживаются методы позиционирования, основанные на спутниках, такие как GPS.
- PositionSource.NonSatellitePositioningMethods - Поддерживаются методы позиционирования, не основанные на спутниках.
- PositionSource.AllPositioningMethods - Поддерживаются как методы позиционирования, основанные на спутниках, так и методы позиционирования, не основанные на спутниках.
updateInterval : int
Это свойство задаёт желаемый интервал между обновлениями (в миллисекундах).
См. также QGeoPositionInfoSource::updateInterval().
valid : bool
Это свойство имеет значение true, если объект PositionSource получил действительный плагин бэкенда для предоставления данных. Если false, другие методы объекта PositionSource не будут иметь эффекта.
Приложения должны проверять это свойство, чтобы определить, доступно и включено ли позиционирование на платформе выполнения, и реагировать соответственно.
Документация сигналов
updateTimeout()
Если был вызван update(), этот сигнал излучается, если текущая позиция не может быть получена в течение определённого промежутка времени.
Если был вызван start(), этот сигнал излучается, если движок позиционирования определяет, что он не может предоставлять дальнейшие регулярные обновления.
Этот сигнал был представлен в Qt Positioning 5.5.
См. также QGeoPositionInfoSource::updateTimeout().
Документация методов
Variant backendProperty(name)
Возвращает значение свойства, специфичного для бэкенда, с именем name, если оно присутствует. В противном случае, включая случай вызова на неинициализированном объекте PositionSource, возвращаемое значение будет недействительным. Поддерживаемые свойства, специфичные для бэкенда, перечислены и описаны в Плагины Qt Positioning#Умолчательные плагины.
Этот метод был представлен в Qt Positioning 5.14.
См. также backendProperty и QGeoPositionInfoSource::setBackendProperty.
bool setBackendProperty(name, Variant value)
Устанавливает свойство, специфичное для бэкенда, с именем name, равным value. Возвращает true при успехе, false в противном случае, включая случай вызова на неинициализированном объекте PositionSource. Поддерживаемые свойства, специфичные для бэкенда, перечислены и описаны в Плагины Qt Positioning#Умолчательные плагины.
Этот метод был представлен в Qt Positioning 5.14.
См. также backendProperty и QGeoPositionInfoSource::setBackendProperty.
start()
Запрашивает обновления от источника местоположения. Использует updateInterval, если он установлен, в противном случае — значение по умолчанию. Если доступен ни один источник, этот метод не имеет эффекта.
См. также stop, update и active.
stop()
Останавливает обновления от источника местоположения. Если ни один источник недоступен или он не активен, этот метод не имеет эффекта.
См. также start, update и active.
update()
Удобный метод для запроса одного обновления от источника местоположения. Если доступен ни один источник, этот метод не имеет эффекта.
Если источник местоположения неактивен, он будет активирован на время, необходимое для получения обновления, или до истечения срока запроса. Срок ожидания запроса зависит от источника.
См. также start, stop и active.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtpositioning-positionsource.html