PositionSource QML Type
위치 소스 유형은 디바이스의 현재 위치를 제공합니다. 더 보기...
Import Statement: | import QtPositioning |
속성
- active : bool
- name : string
- parameters : list<PluginParameter>
(since QtPositioning 5.14)
- position : Position
- preferredPositioningMethods : enumeration
- sourceError : enumeration
- supportedPositioningMethods : enumeration
- updateInterval : int
- valid : bool
방법
- Variant backendProperty(string name)
(since Qt Positioning 5.14)
- bool setBackendProperty(string name, Variant value)
(since Qt Positioning 5.14)
- start()
- stop()
- update(int timeout)
상세 설명
위치 소스 유형은 사용자 디바이스의 현재 위치에 대한 정보를 제공합니다. 위치는 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); } }
작동 상태 제어하기
위에서 언급했듯이 PositionSource는 작동 상태를 제어하는 두 가지 방법을 제공합니다:
참고: 이러한 접근 방식을 혼용하지 않는 것이 매우 중요합니다. 바인딩 가능한 active 속성을 사용하여 PositionSource 객체를 제어하지만 나중에 코드의 다른 부분에서 start() 또는 stop()를 호출하면 바인딩이 끊어져 예를 들어 UI 요소가 더 이상 기본 객체에 연결되지 않는 결과가 발생할 수 있습니다.
다음 잘못된 코드의 예를 살펴보면 active
속성이 CheckBox 상태에 바인딩되어 있는데 onClicked
신호 핸들러에서 stop()을 호출하면 해당 바인딩이 깨집니다.
Window { width: 640 height: 480 visible: true PositionSource { id: posSource name: "geoclue2" active: cb.checked } Column { anchors.centerIn: parent spacing: 20 CheckBox { id: cb } Button { id: btn text: "Stop" onClicked: { posSource.stop() } } } }
중지 버튼이 클릭되면 stop()가 실행되고 active 속성에 대한 바인딩이 깨집니다. 이 시점에서 CheckBox UI 요소는 더 이상 PositionSource 객체를 제어하지 않습니다.
이 경우 간단한 해결 방법은 onClicked
핸들러에서 CheckBox 상태를 업데이트하는 것입니다. 체크박스가 선택 해제되는 즉시 active 프로퍼티에 알림이 전송되고 그에 따라 PositionSource 객체의 상태가 업데이트됩니다. UI도 일관된 상태가 됩니다.
Button { id: btn text: "Stop" onClicked: { cb.checked = false } }
QtPositioning::Position, QGeoPositionInfoSource, PluginParameter 및 Qt XML 바인딩 가능 프로퍼티를참조하십시오 .
프로퍼티 문서
active : bool |
name : string |
이 속성은 현재 위치 정보를 제공하는 플러그인의 고유한 내부 이름을 보유합니다.
이 속성을 설정하면 PositionSource 에서 특정 포지셔닝 공급자를 사용하도록 합니다. 이름 속성이 변경되는 시점에 PositionSource 이 활성화되어 있으면 비활성화됩니다. 지정된 포지셔닝 제공업체를 로드할 수 없는 경우 위치 소스는 유효하지 않게 됩니다.
이름 속성을 변경하면 updateInterval, supportedPositioningMethods 및 preferredPositioningMethods 속성도 변경될 수 있습니다.
parameters : list<PluginParameter> |
이 속성은 플러그인 매개변수 목록을 보유합니다.
이 프로퍼티는 QtPositioning 5.14에 도입되었습니다.
position : Position |
preferredPositioningMethods : enumeration |
이 속성은 현재 소스의 기본 위치 지정 방법을 보유합니다.
- PositionSource.NoPositioningMethods - 선호되는 포지셔닝 메서드가 없습니다.
- PositionSource.SatellitePositioningMethods - GPS와 같은 위성 기반 포지셔닝 방법을 선호합니다.
- PositionSource.NonSatellitePositioningMethods - 위성 기반이 아닌 방법을 선호해야 합니다.
- PositionSource.AllPositioningMethods - 모든 포지셔닝 방법을 사용할 수 있습니다.
sourceError : enumeration |
이 속성은 PositionSource 에서 마지막으로 발생한 오류를 보유합니다.
- PositionSource.AccessError - 애플리케이션에 필요한 권한이 없기 때문에 원격 측위 백엔드에 대한 연결 설정이 실패했습니다.
- PositionSource.ClosedError - 포지셔닝 백엔드가 연결을 닫았습니다(예: 사용자가 위치 서비스를 끄기로 전환하는 경우). 위치 서비스가 다시 활성화되는 즉시 정기 업데이트가 재개됩니다.
- PositionSource.NoError - 오류가 발생하지 않았습니다.
- PositionSource.UnknownSourceError - 알 수 없는 오류가 발생했습니다.
- PositionSource.UpdateTimeoutError - 지정된 시간 제한 내에 현재 위치를 검색할 수 없거나 PositionSource 이 더 이상 정기 업데이트를 제공할 수 없다고 판단했습니다.
supportedPositioningMethods : enumeration |
이 속성은 현재 소스에서 지원되는 포지셔닝 메서드를 보유합니다.
- PositionSource.NoPositioningMethods - 지원되는 포지셔닝 메서드가 없습니다(소스 없음).
- PositionSource.SatellitePositioningMethods - GPS와 같은 위성 기반 포지셔닝 메서드가 지원됩니다.
- PositionSource.NonSatellitePositioningMethods - 비위성 기반 메서드가 지원됩니다.
- PositionSource.AllPositioningMethods - 위성 기반 및 비위성 기반 위치 측정 방법이 모두 지원됩니다.
updateInterval : int |
이 속성은 원하는 업데이트 간격(밀리초)을 보유합니다.
QGeoPositionInfoSource::updateInterval()도 참조하세요 .
valid : bool |
PositionSource 객체가 데이터를 제공하기 위해 유효한 백엔드 플러그인을 획득한 경우 이 속성은 참입니다. 거짓이면 PositionSource 의 다른 메서드는 아무런 영향을 미치지 않습니다.
애플리케이션은 이 속성을 확인하여 런타임 플랫폼에서 포지셔닝을 사용할 수 있고 활성화되어 있는지 확인하고 그에 따라 반응해야 합니다.
메서드 문서
|
name 라는 백엔드별 프로퍼티가 있는 경우 그 값을 반환합니다. 그렇지 않으면 초기화되지 않은 PositionSource 에서 호출된 경우를 포함하여 반환값이 유효하지 않습니다. 지원되는 백엔드별 프로퍼티는 Qt Positioning 플러그인#기본 플러그인에 나열 및 설명되어 있습니다.
이 메서드는 Qt Positioning 5.14에서 도입되었습니다.
backendProperty 및 QGeoPositionInfoSource::setBackendProperty도 참조하세요 .
name 라는 백엔드 전용 프로퍼티를 value 로 설정합니다. 초기화되지 않은 PositionSource 에서 호출된 경우를 포함하여 성공하면 참을 반환하고 그렇지 않으면 거짓을 반환합니다. 지원되는 백엔드별 프로퍼티는 Qt Positioning plugins#기본 플러그인에 나열되고 설명되어 있습니다.
이 메서드는 Qt Positioning 5.14에 도입되었습니다.
backendProperty 및 QGeoPositionInfoSource::setBackendProperty도 참조하세요 .
start() |
위치 소스에서 업데이트를 요청합니다. 설정된 경우 updateInterval, 그렇지 않으면 기본 간격을 사용합니다. 사용 가능한 소스가 없는 경우 이 메서드는 효과가 없습니다.
참고: 이 메서드를 호출하면 active 속성의 바인딩이 깨집니다.
stop() |
update(int timeout) |
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.