Тип QML PositionSource
Тип PositionSource предоставляет текущее положение устройства. Подробнее...
| Заявление об импорте: | import QtPositioning 5.13 |
| С момента: | Qt 5.2 |
Свойства
- active : bool
- name : строка
- nmeaSource : url
- position : Position
- preferredPositioningMethods : перечисление
- sourceError : перечисление
- supportedPositioningMethods : перечисление
- updateInterval : целое
- 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/qt-5.13/qml-qtpositioning-positionsource.html