이 사이트는 전자정부 표준프레임워크 구버전(1.0 ~ 4.3) 가이드 아카이브입니다. 내용은 더 이상 갱신되지 않습니다. 최신 내용은 최신 버전 문서에서 확인하세요.

모바일 디바이스 API 3.5

Compass

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만 지원한다.
compassOptions
유형설명타입비고
frequency특정 시간 간격으로 방위 센서를 감지한다.Number기본 : 100
filterwatchHeadingFilter() 메소드에 사용하는 속성으로, 특정 filter 값 이상일 때만 감지한다.Number

compassHeading

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

참고자료

원본 페이지 ID
egovframework:hyb3.5:hrte:deviceapi:compass
원본 수정일