PositionSource QML Type

위치 소스 유형은 디바이스의 현재 위치를 제공합니다. 더 보기...

Import Statement: import QtPositioning

속성

방법

상세 설명

위치 소스 유형은 사용자 디바이스의 현재 위치에 대한 정보를 제공합니다. 위치는 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
    }
}

참고: update()를 사용하여 단일 위치 업데이트를 요청해도 active 속성의 바인딩에는 영향을 미치지 않으므로 문제 없이 함께 사용할 수 있습니다.

QtPositioning::Position, QGeoPositionInfoSource, PluginParameterQt XML 바인딩 가능 프로퍼티를참조하십시오 .

프로퍼티 문서

active : bool

이 프로퍼티는 위치 소스가 활성화되어 있는지 여부를 나타냅니다. 이 속성을 false로 설정하면 stop 을 호출하고, true로 설정하면 start 을 호출하는 것과 같습니다.

start, stop, update참조하십시오 .


name : string

이 속성은 현재 위치 정보를 제공하는 플러그인의 고유한 내부 이름을 보유합니다.

이 속성을 설정하면 PositionSource 에서 특정 포지셔닝 공급자를 사용하도록 합니다. 이름 속성이 변경되는 시점에 PositionSource 이 활성화되어 있으면 비활성화됩니다. 지정된 포지셔닝 제공업체를 로드할 수 없는 경우 위치 소스는 유효하지 않게 됩니다.

이름 속성을 변경하면 updateInterval, supportedPositioningMethodspreferredPositioningMethods 속성도 변경될 수 있습니다.


parameters : list<PluginParameter> [default, since QtPositioning 5.14]

이 속성은 플러그인 매개변수 목록을 보유합니다.

이 프로퍼티는 QtPositioning 5.14에 도입되었습니다.


position : Position

이 프로퍼티는 마지막으로 알려진 위치 데이터를 저장합니다. 읽기 전용 속성입니다.

위치 유형에는 다양한 위치 멤버 변수가 있으며, 적절한 유효성 함수를 사용하여 유효성을 확인할 수 있습니다(예: 업데이트에 속도 또는 고도 데이터가 없는 경우가 있음).

그러나 positionChanged 신호가 수신될 때마다 최소한 위치::좌표::위도, 위치::좌표::경도 및 위치::타임스탬프는 유효한 것으로 간주할 수 있습니다.

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.UpdateTimeoutError - 지정된 시간 제한 내에 현재 위치를 검색할 수 없거나 PositionSource 이 더 이상 정기 업데이트를 제공할 수 없다고 판단했습니다.

supportedPositioningMethods : enumeration

이 속성은 현재 소스에서 지원되는 포지셔닝 메서드를 보유합니다.

  • PositionSource.NoPositioningMethods - 지원되는 포지셔닝 메서드가 없습니다(소스 없음).
  • PositionSource.SatellitePositioningMethods - GPS와 같은 위성 기반 포지셔닝 메서드가 지원됩니다.
  • PositionSource.NonSatellitePositioningMethods - 비위성 기반 메서드가 지원됩니다.
  • PositionSource.AllPositioningMethods - 위성 기반 및 비위성 기반 위치 측정 방법이 모두 지원됩니다.

updateInterval : int

이 속성은 원하는 업데이트 간격(밀리초)을 보유합니다.

QGeoPositionInfoSource::updateInterval()도 참조하세요 .


valid : bool

PositionSource 객체가 데이터를 제공하기 위해 유효한 백엔드 플러그인을 획득한 경우 이 속성은 참입니다. 거짓이면 PositionSource 의 다른 메서드는 아무런 영향을 미치지 않습니다.

애플리케이션은 이 속성을 확인하여 런타임 플랫폼에서 포지셔닝을 사용할 수 있고 활성화되어 있는지 확인하고 그에 따라 반응해야 합니다.


메서드 문서

[since Qt Positioning 5.14] Variant backendProperty(string name)

name 라는 백엔드별 프로퍼티가 있는 경우 그 값을 반환합니다. 그렇지 않으면 초기화되지 않은 PositionSource 에서 호출된 경우를 포함하여 반환값이 유효하지 않습니다. 지원되는 백엔드별 프로퍼티는 Qt Positioning 플러그인#기본 플러그인에 나열 및 설명되어 있습니다.

이 메서드는 Qt Positioning 5.14에서 도입되었습니다.

backendProperty 및 QGeoPositionInfoSource::setBackendProperty도 참조하세요 .


[since Qt Positioning 5.14] bool setBackendProperty(string name, Variant value)

name 라는 백엔드 전용 프로퍼티를 value 로 설정합니다. 초기화되지 않은 PositionSource 에서 호출된 경우를 포함하여 성공하면 참을 반환하고 그렇지 않으면 거짓을 반환합니다. 지원되는 백엔드별 프로퍼티는 Qt Positioning plugins#기본 플러그인에 나열되고 설명되어 있습니다.

이 메서드는 Qt Positioning 5.14에 도입되었습니다.

backendPropertyQGeoPositionInfoSource::setBackendProperty도 참조하세요 .


start()

위치 소스에서 업데이트를 요청합니다. 설정된 경우 updateInterval, 그렇지 않으면 기본 간격을 사용합니다. 사용 가능한 소스가 없는 경우 이 메서드는 효과가 없습니다.

참고: 이 메서드를 호출하면 active 속성의 바인딩이 깨집니다.

stop, update, active참조하세요 .


stop()

위치 소스의 업데이트를 중지합니다. 사용 가능한 소스가 없거나 활성화되지 않은 경우 이 메서드는 효과가 없습니다.

참고: 이 메서드를 호출하면 active 속성의 바인딩이 해제됩니다.

start, update, active참조하세요 .


update(int timeout)

위치 소스에서 단일 업데이트를 요청하는 편리한 메서드입니다. 사용 가능한 소스가 없는 경우 이 메서드는 효과가 없습니다.

위치 소스가 활성화되어 있지 않으면 업데이트를 수신하는 데 걸리는 시간만큼 또는 요청 시간이 초과될 때까지 활성화됩니다. 요청 시간 초과 기간은 소스에 따라 다릅니다.

timeout 은 밀리초 단위로 지정됩니다. timeout 이 0(기본값)인 경우 기본값은 소스에 적합한 적절한 시간 초과 기간으로 설정됩니다.

start, stop, active참조하세요 .


© 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.