Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Geo Location

Geolocation API를 이용하면, 웹 어플리케이션에서 사용자 위치를 알아낼 수 있다. 사생활 침해의 가능성이 있기 때문에, 사용자 동의를 받는 과정을 거쳐야 한다. 사용할 수 있는 브라우저는 아래와 같다.

API Chrome IE FireFox Sapari Opera
Geolocation 5.0-49.0(http), 50.0(https) 9.0 3.5 5.0 16.0
<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>
버튼을 클릭하면, 현재 위치 정보를 가져오는 간단한 코드를 만들었다.

위치 가져오기

데스크탑에서 테스트했는데, IP 기반이라서 그런지 정확도가 크게 떨어졌다(한 2km 차이가 나는 듯). 안드로이드에서 테스트했더니, 직선 거리로 대략 30m 정도의 오차가 나왔다. 아파트라서 오차가 큰 것으로 보인다.

getCurrentPosition() 메서드의 리턴 데이터

getCurrentPosition()호출이 성공하면 아래의 값들을 리턴한다.
  • coords.latitude : 위도. 항상 리턴
  • coords.longitude : 경도. 항상 리턴
  • coords.accuracy : 위치의 정확성
  • coords.altitude : 해수면 기준 높이. 가능할 경우
  • coords.altitudeAccuracy : 해수명 기준 높이의 정확성
  • coords.heading : 북쪽을 기준으로 시계 방향으로 향하는 방향
  • coords.speed : 속력(초당)
  • timestamp : 응답한 시간