달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
반응형

Geolocation API 는 프로그램을 실행하는 디바이스의 위치 정보를 얻기 위한 Javascript API이다. 


메서드 3개로 이뤄진 간단한 API이다. 


사용법 

Geolocation API와 관련된 메서드는 모두 window.navigator객체에 정의 되어 있음. 


현재 위치를 한번만 얻음 

우선 디바이스의 현재 위치를 한번만 얻기 위한 메서드 getCurrentPosition()은 다음과 같이 

정의 됨. 

- getCurrentPosition(successCallback, errorCallback, options) 

현재 위치 정보를 비동기로 확인한 다음 처리 결과를 인수로 하여 successCallBack을 한번만 호출

에러가 발생했을 때는 상세한 에러 정보를 인수로 하여 errorCallback을 호출


현재 위치 얻기 

navigator.geolocation.getCurrentPosition(function(position) {  

// 위치 정보를 이용하여 처리를 수행 

alert("위도 : " + position.coords.latitude + "경도 : " + position.coords.longitude); 

});


위치 정보 객체의 속성 


coords 

latitude     : 위도  

longitude   : 경도 

altitude     : 표고(이용할 수없을 때는 null)

accuracy   : 위도, 경도의 오차(단위와 미터) 

altitudeAccuracy : 표고의 오차(단위와 미터)

heading : 디바이스의 진행 방향. 북쪽을 기준으로 한 시계 방향의 각도로 나타냄(이용할 수 없을 때는 null)

speed : 디바이스의 진행 속도(미터/초) 이용할 수 없을 때는 null

timestamp : 위치 정보를 얻은 시각(1970/1/1 부터의 미리 세컨드) 

위치 정보를 계속 확인함. 

watchPostion() 메서드를 이용하면 현재 위치를 계속 추적할 수 있고, 이 처리는 clearWatch()메서드를 호출하여 확인을 종료할 때까지 계속 된다. 


- watchPosition(successCallback, errorCallback, option)

이 메서드를 호출하면 현재 위치 정보를 비동기로 확인하고 처리 결과를 인수로 지정한 콜백메서드를 호출한다. 그 후에도 콜백 메서드는 디바이스가 위치가 변경되었다고 판단할 때마다 계속 호출한다. 

메서드의 반환값은 clearWatch()에 전달 할 수 있는 정수 


- clearWatch(watchId)

watchPosition()가 반환한 정숫값을 인수로 하여 watchPosition()메서드를 종료한다. 


위치 정보를 얻을 때의 옵션 

getCurrentPosition() 과 watchPosition() 의 세 번째 인수에는 위치 정보 확인 처리를 제한하기 위한 옵션을 지정

현재 Geolocation API는 다음과 같은 속성르 가진 Javascript객체를 옵션으로 지정할 수 있다. 

- enableHighAccuracy : 정확도가 높은 위치 정보를 요청 

- timeout : 위치 정보 확인에 시간제한을 설정(밀리 세컨드). 시간제한을 초과하면 에러(TIME OUT)발생 

- maximumAge : 위치 정보의 유효 기간을 설정함(밀리 세컨드). 현재의 위치 정보가 maximumAge보다 오래된 것이라면 해당 위치 정보는 폐기되고 새롭게 위치 정보 확인을 시도함. 0을 지정하면 항상 새로운 위치 정보를 확인함. 


예제 코드 

navigator.geolocation.getCurrentPosition(onSuccess, onError, {

   enableHighAccuracy: true, 

   maximumAge : 0

}); 



[출처] Geolocation API|작성자 난이

반응형
Posted by 친절한 웬디양~ㅎㅎ
|