Тип QML PositionSource
Тип PositionSource предоставляет текущее положение устройства. Подробнее...
| Заявление об импорте: | import QtPositioning 5.2 |
| С момента: | 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 (Национальная морская электронная ассоциация) для данных о местоположении (файл). Одна из целей этого свойства заключается в удобстве разработки.
Установка этого свойства переопределит любой другой источник местоположения. В настоящее время поддерживаются только файлы, локальные для .qml-файла. Источник NMEA создаётся в режиме моделирования, что означает, что данные и информация о времени в данных источника NMEA используются для предоставления обновлений местоположения с частотой, с которой данные изначально записывались.
Если для объекта PositionSource было установлено свойство nmeaSource, нет способа вернуться к источникам, отличным от файлов.
position : Position
Это свойство содержит последние известные данные о местоположении. Это свойство только для чтения.
Тип Position имеет различные члены местоположения, чью валидность можно проверить с помощью соответствующих функций валидации (например, иногда обновление не имеет данных о скорости или высоте).
Однако всякий раз, когда был получен сигнал positionChanged, можно считать, что по крайней мере position::coordinate::latitude, position::coordinate::longitude и position::timestamp являются валидными.
См. также start, stop и update.
preferredPositioningMethods : перечисление
Это свойство содержит предпочтительные методы позиционирования текущего источника.
- PositionSource.NoPositioningMethods - Ни один метод позиционирования не предпочтительный.
- PositionSource.SatellitePositioningMethods - Следует предпочитать спутниковые методы позиционирования, такие как GPS.
- PositionSource.NonSatellitePositioningMethods - Следует предпочитать методы, не основанные на спутниках.
- PositionSource.AllPositioningMethods - Любые методы позиционирования приемлемы.
sourceError : перечисление
Это свойство содержит ошибку, которая произошла в последний раз с PositionSource.
- PositionSource.AccessError - Настройка подключения к удалённому бэкенду позиционирования не удалась, потому что у приложения не было необходимых привилегий.
- PositionSource.ClosedError - Бэкенд позиционирования закрыл соединение, что происходит, например, если пользователь переключает службы местоположения на выключенные. Как только служба местоположения снова включена, регулярные обновления возобновятся.
- PositionSource.NoError - Ошибка не произошла.
- PositionSource.UnknownSourceError - Произошла неизвестная ошибка.
- PositionSource.SocketError - Произошла ошибка при подключении к источнику nmea через сокет.
supportedPositioningMethods : перечисление
Это свойство содержит поддерживаемые методы позиционирования текущего источника.
- PositionSource.NoPositioningMethods - Методы позиционирования не поддерживаются (нет источника).
- PositionSource.SatellitePositioningMethods - Поддерживаются спутниковые методы позиционирования, такие как GPS.
- PositionSource.NonSatellitePositioningMethods - Поддерживаются методы, не основанные на спутниках.
- PositionSource.AllPositioningMethods - Поддерживаются как спутниковые, так и неспутниковые методы позиционирования.
updateInterval : int
Это свойство задаёт желаемый интервал между обновлениями (в миллисекундах).
См. также QGeoPositionInfoSource::updateInterval().
valid : bool
Это свойство истинно, если объект PositionSource приобрел действительный плагин бэкенда для предоставления данных. Если ложно, другие методы объекта PositionSource не будут иметь эффекта.
Приложения должны проверять это свойство, чтобы определить, доступна и включена ли позиционирование на платформе выполнения, и реагировать соответствующим образом.
Документация сигналов
updateTimeout()
Если был вызван метод update(), этот сигнал излучается, если текущая позиция не могла быть получена в течение определённого времени.
Если был вызван метод start(), этот сигнал излучается, если движок определения позиции определяет, что он не может предоставить дальнейших регулярных обновлений.
Этот QML-сигнал был представлен в 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.6/qml-qtpositioning-positionsource.html