Тип QML PositionSource
Тип PositionSource предоставляет текущее положение устройства. Подробнее...
| Заявление об импорте: | import QtPositioning 5.11 |
| С тех пор: | Qt 5.2 |
Свойства
- active : bool
- name : string
- nmeaSource : url
- position : Position
- preferredPositioningMethods : перечисление
- sourceError : перечисление
- supportedPositioningMethods : перечисление
- updateInterval : int
- valid : bool
Сигналы
Методы
Подробное описание
Тип 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.
Документация по свойствам
active : bool
Это свойство указывает, активен ли источник местоположения. Установка этого свойства в false эквивалентна вызову stop, а установка в true — вызову start.
См. также start, stop и update.
name : string
Это свойство содержит уникальное внутреннее имя для плагина, в данный момент предоставляющего информацию о местоположении.
Установка свойства заставляет PositionSource использовать конкретный поставщик определения местоположения. Если PositionSource активен в момент изменения свойства name, он станет неактивным. Если указанный поставщик определения местоположения не может быть загружен, источник местоположения станет недоступным.
Изменение свойства name может привести к изменению свойств updateInterval, supportedPositioningMethods и preferredPositioningMethods также.
nmeaSource : url
Это свойство содержит источник данных о местоположении NMEA (National Marine Electronics Association) (файл). Одна из целей этого свойства — удобство разработки.
Установка этого свойства переопределит любой другой источник местоположения. В настоящее время поддерживаются только файлы, локальные по отношению к .qml-файлу. Источник NMEA создаётся в режиме моделирования, что означает, что данные и временная информация в данных источника NMEA используются для предоставления обновлений местоположения с той скоростью, с которой данные были первоначально записаны.
Если для объекта PositionSource установлено свойство nmeaSource, нет способа вернуться к источникам, не связанным с файлами.
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().
Документация методов
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/archives/qt-5.11/qml-qtpositioning-positionsource.html