Compass

설명

  • 디바이스의 방향(방위각)을 구하는 기능을 제공한다.

제약사항

  • Compass API의 플랫폼별 제약사항은 다음과 같다.

Android

compassOptions
  • filter 를 지원하지 않는다.
compassHeading
  • trueHeading 을 지원하지 않는다. magneticHeading과 동일.
  • magneticHeading과 magneticHeading 이 동일하기 때문에headingAccuracy 는 항상 0 이다.

iOS

compassHeading
  • trueHeading은 navigator.geolocation.watchLocation()이 동작하고 있을 때만 감지된다.
  • iOS4 이상의 단말기에서는 단말기가 회전했을 때 trueHeading 값을 감지한다.

환경 설정

Android

  • app/res/xml/config.xml
<plugin name="Compass" value="org.apache.cordova.CompassListener" />

iOS

  • App/Supporting Files/config.xml
    <feature name="Compass">
        <param name="ios-package" value="CDVLocation"/>
    </feature>>

관련 함수

compass.getCurrentHeading

  • 디바이스의 방위 센서가 감지한 현재 방향을 가져온다. ( 0 ~ 359.9)
navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
  • Quick Example
function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

function onError(error) {
    alert('CompassError: ' + error.code);
};

navigator.compass.getCurrentHeading(onSuccess, onError);

compass.watchHeading

  • 특정 시간 간격으로 방위 센서가 감지한 빙향 정보를 가져온다.
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
  • Quick Example
function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = 'Heading: ' + heading.magneticHeading;
};

function onError(compassError) {
        alert('Compass error: ' + compassError.code);
};

var options = { frequency: 3000 };  // Update every 3 seconds

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

compass.clearWatch

  • watchHeading()을 통해 작동 중인 방위 센서(watchID)를 중지한다.
navigator.compass.clearWatch(watchID);
  • Quick Example
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

... 

navigator.compass.clearWatch(watchID);

파라미터

compassSuccess

  • 방위 센서의 메소드가 성공했을 때 실행하는 함수.
  • heading: 방위 센서가 감지한 방위 정보. (compassHeading)
function(heading) {
    // Do something
}

compassError

  • 방위 센서의 메소드가 실패했을 때의 파라미터.
function(CompassError) { 
    // Handle the error 
}

compassOptions

  • 방위 센서의 옵션을 정의한다.
  • iOS만 지원한다.
유형설명타입비고
frequency특정 시간 간격으로 방위 센서를 감지한다.Number기본 : 100
filterwatchHeadingFilter() 메소드에 사용하는 속성으로, 특정 filter 값 이상일 때만 감지한다.Number

compassHeading

  • 방위 센서에서 전달받은 방향 정보를 나타낸다.
유형설명타입비고
magneticHeading자기 방위 값을 나타낸다.Number0 ~ 359.99
trueHeading진북을 기준으로 진방위 값을 나타내며, 음수는 진방위 값을 나타낼 수 없음을 의미한다. Number0 ~ 359.99
headingAccuracy방위 각도에 대한 편차 값을 나타낸다.Number
timestamp방위를 감지한 시각을 milliseconds 단위로 나타낸다.

참고자료

 
egovframework/hyb2.7/hrte/deviceapi/compass.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki