HTML5_Geolocation_최성규

Report
HTML5 Geolocation
2012.012.02 최성규
Geolocation
Geolocation API 는 HTML 5 에 새롭게 추가된 사용자의 위치정보를 얻기위한
JavaScript API 입니다.
Geolocation API 는 세개의 Method 로 이루어진 API 입니다.
그 전에 먼저 알아야 할 점은 현재의 위치정보가 Network 정보로 부터 추측한 것
인지 GPS 로 부터 얻은 것인지에 관한 자세한 내용은 알 수 없다는 것입니다. 단
지 GPS 가 내장된 Smartphone 과 같은 Device 에서는 GPS 기능을 활용할 수 있
고 일반 PC 에서는 WiFi 같은 정보를 이용해서 현재 정보를 알아 낼 수 있습니다.
Geolocation 은 위치정보에 대한 정보를 GPS, WiFi IP Address, GSM/CDMA 망
을 사용하는 휴대전화의 IDs 등에서 얻어옵니다. 다만 PC 에서는 한정된 정보
만 제공하여 이용이 불가능한 경우가 있고 특히 Mobile Browser 에서 유용한
API 라고 할 수있습니다.
Geolocation 사용법
Geolocation API 와 관련된 함수는 모두 window.navigator 객체에 정의되어 있습니다.
다음 Method를 사용하여 위치정보를 얻어 올 수 있습니다.
•
1.
위치를 한번만 얻기 위한 함수
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
2.
위치를 계속 얻기 위한 함수
var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback, options);
watchPosition은 getCurrentPosition과 매우 유사하며 동일한 매개변수를 사용합니다.
한 가지 주요 차이점은 이 API가 ID를 리턴한다는 것입니다.
이 ID는 geolocation API인 clearWatch와 함께 사용할 수 있다.
clearWatch 함수는 watchPosition에서 리턴한 ID를 사용한다.
watchPosition을 호출한 후에는 clearWatch가 호출될 때까지 브라우저에서는 사용자가 전달한
success callback 함수에게 지속적으로 업데이트를 보낸다.
사용자의 위치를 지속적으로 받게 되면 모바일 장치의 배터리가 빠르게 소진되므로
이러한 API를 사용할 때는 많은 주의를 기울여야 한다.
Geolocation 사용법
•
성공시 호출되는 successCallback 함수에 전달되는 위치정보에는 다음과 같은 정보들이 포함됩니다
위치정보 속성 coords 속성
latitude
longitude
altitude
accuracy
coords
altitudeAccuracy
설명
위도
경도
고도
위도, 경도의 오차 (단위와 오차)(m)
고도의 오차 (단위와 오차) (m)
타입
double
double
double?
double
double?
heading
Device 의 진행 방향. 북쪽을 기준으로 한 시계방향의 각도로 나타냄
double?
speed
Device 의 진행 속도(미터/초). (이용할 수 없을 때는 null)
double?
위치정보를 얻은 시각(1970년 1월 1일 부터의 milisecond)
long
timestamp
•
Error 발생시 호출되는 errorCallback 함수에 전달되는 객체에 담겨져 있는 속성과 상수들입니다.
속성/상수
설명
타입
code
Error Code
short
UNKNOWN_ERROR
알수 없는 Error (Error code 값 : 0)
short
PERMISSION_DENIED
권한 없음 Error (Error code 값 : 1)
short
POSITION_UNAVAILABLE
위치정보를 얻을 수 없음 (Error code 값 : 2)
short
TIMEOUT
시간제한 초과 (Error code 값 : 3)
short
message
Error Message
string
Geolocation 사용법
•
•
•
위치정보를 조회시 입력하는 세번째 Parameter 인 option 에 지정할 수 있는 것들은 다음과 같습니다
속성/상수
설명
타입
enableHighAccuracy
정확도가 높은 위치 정보를 요청
boolean
timeout
위치 정보 확인에 시간제한을 설정. 시간제한을 초과하면 TIMEOUT error 발생
long
maximumAge
위치정보의 유효기간을 설정. 0 을 지정하면 항상 새로운 위치정보를 요청함
long
내용을 보면 위치정보의 유효기간은 0 으로 항상 새로운 위치정보를 가져오며, 정확도 높은 위치정보를 요청합니다.
그리고 timeout 은 3초로 설정하고 있습니다.
navigator.geolocation.getCurrentPosition(successCallback, errorCallback,
{maximumAge: 0, enableHighAccuracy: true, timeout: 3000 }
);
Geolocation 관련 링크
•
W3C Geolocation API Specification
•
•
강좌
•
•
•
•
http://www.sqler.com/400590
http://www.sqler.com/415460
http://www.ibm.com/developerworks/kr/library/x-html5mobile1/
Google Map API
•
•
http://www.w3.org/TR/geolocation-API/
http://code.google.com/intl/ko-KR/apis/maps/documentation/javascript/basics.html
Demo
•
•
•
http://www.hometown.co.kr/sample/geolocation.htm
http://maxheapsize.com/static/html5geolocationdemo.html
http://html5demos.com/geo
Thank You!
!

similar documents