===== 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 === iOS === * App/Supporting Files/config.xml > ==== 관련 함수 ==== === 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| |filter|watchHeadingFilter() 메소드에 사용하는 속성으로, 특정 filter 값 이상일 때만 감지한다.|Number| | === compassHeading === * 방위 센서에서 전달받은 방향 정보를 나타낸다. ^유형^설명^타입^비고^ |magneticHeading|자기 방위 값을 나타낸다.|Number|0 ~ 359.99| |trueHeading|진북을 기준으로 진방위 값을 나타내며, 음수는 진방위 값을 나타낼 수 없음을 의미한다. |Number|0 ~ 359.99| |headingAccuracy|방위 각도에 대한 편차 값을 나타낸다.|Number| | |timestamp|방위를 감지한 시각을 milliseconds 단위로 나타낸다.| | | ==== 참고자료 ==== * Cordova : https://cordova.apache.org/docs/en/7.x/reference/cordova-plugin-device-orientation/index.html