내 위치 위도 경도 확인, 정확도까지 한 번에

지금 내가 있는 곳의 위도·경도 숫자가 필요할 때, 브라우저는 이미 그 값을 정확도(오차 반경)까지 함께 계산해서 갖고 있습니다. 지도 앱을 켜고 화면에서 좌표를 눈으로 읽어 옮겨 적을 필요 없이, 브라우저 자체 기능만으로 숫자를 바로 얻을 수 있습니다. 이 글은 그 좌표가 어떤 원리로 만들어지고, 함께 뜨는 accuracy·altitude·speed 값이 각각 무엇을 뜻하는지를 정리합니다.

요약 ① 브라우저 위치 정보는 위성 GPS뿐 아니라 와이파이 신호·기지국 정보까지 종합해 추정한 값입니다. ② accuracy(정확도) 숫자는 오차 반경(미터)을 뜻하며, 값이 클수록 실제 위치와 멀어질 수 있습니다. ③ HTTPS(또는 localhost) 접속이 아니면 브라우저가 위치 정보 API 자체를 차단합니다.

언제 위도·경도 숫자가 그대로 필요할까

지도 앱은 목적지를 찾을 때는 편리하지만, 위도·경도 숫자 자체를 바로 보여주지는 않는 경우가 많습니다. 좌표를 얻으려면 지도를 길게 눌러 팝업을 띄우고 숫자를 손으로 옮겨 적어야 합니다.

반면 좌표 숫자 그 자체가 필요한 상황은 자주 있습니다. 온라인 서식의 위치 입력칸, 사진이나 기록물에 남겨야 하는 촬영 지점, 위치 기반 기능을 테스트하는 개발 작업이 대표적입니다.

이럴 때 필요한 건 지도 화면이 아니라 숫자입니다. 그리고 그 숫자는 이미 쓰고 있는 브라우저 안에 표준 기능으로 내장되어 있습니다.

브라우저 콘솔로 직접 좌표를 계산하는 방법

이 좌표는 브라우저에 내장된 표준 기능인 Geolocation API가 만들어냅니다. 별도 도구 없이 개발자도구 콘솔만 열어도 직접 호출해볼 수 있습니다.

페이지에서 F12(맥은 Cmd+Option+I)를 눌러 콘솔 탭을 연 다음, 아래 코드를 붙여넣고 실행합니다.

navigator.geolocation.getCurrentPosition(
  (pos) => console.log(pos.coords),
  (err) => console.log(err.message),
  { enableHighAccuracy: true, timeout: 10000, maximumAge: 0 }
);

브라우저가 위치 권한 팝업을 띄우고 허용을 누르면, 콘솔에 위도·경도·정확도·고도·속도·측정 시각이 담긴 객체가 그대로 출력됩니다.

위치는 GPS 신호만으로 계산되지 않는다

이 값은 위성 GPS 신호만으로 만들어지지 않습니다. 브라우저는 기기가 잡을 수 있는 GPS 신호, 주변 와이파이 접속점(AP) 정보, 이동통신 기지국 위치 정보를 종합해 위치를 추정합니다. 실제로 어떤 소스를 썼는지는 결과값에 표시되지 않습니다.

HTTPS 연결에서만 동작하는 이유

이 기능은 반드시 HTTPS로 암호화된 페이지이거나 localhost(로컬 개발 환경)에서만 동작합니다. 표준 사양이 위치 정보 API를 '보안 컨텍스트'에서만 호출하도록 제한하고 있어, 일반 HTTP 페이지에서는 권한 팝업조차 뜨지 않고 오류가 반환됩니다.

권한 팝업에서 차단을 누르면 err.message에 거부됐다는 문구가 담긴 오류가 반환됩니다. 표준 사양은 이를 PERMISSION_DENIED(코드 1)로 정의합니다. 이 밖에 위치를 측정할 수 없을 때는 POSITION_UNAVAILABLE(코드 2), 응답이 지연될 때는 TIMEOUT(코드 3)이 반환됩니다.

저희 도구로 확인하기.

HTML5 Geolocation 좌표 확인기

브라우저 내장 Geolocation API로 위도·경도·정확도(오차 반경)와 구글 지도 링크, JSON 원본을 한 번에 확인합니다.

결과를 읽을 때 자주 헷갈리는 부분

화면에 뜬 숫자를 읽을 때 헷갈리는 지점이 몇 가지 있습니다.

같은 자리에서 버튼을 다시 눌러도 위도·경도 소수점 자리가 미세하게 바뀌는 경우가 있습니다. 위치는 요청할 때마다 새로 계산되는 추정값이라, 그 순간 잡히는 신호 조합이 조금씩 달라지면 결과도 함께 흔들립니다. 도구는 maximumAge를 0으로 요청해 매번 캐시 없이 새로 계산합니다.

accuracy는 '이 좌표를 중심으로 한 오차 반경(미터)'입니다. 값이 작을수록 실제 위치가 그 좌표 가까이에 있을 가능성이 높고, 값이 클수록 실제 위치가 좌표에서 멀리 떨어져 있을 수 있다는 뜻입니다.

altitude(고도)와 speed(속도)가 null로 나오는 건 오류가 아닙니다. 기기에 해당 값을 측정할 센서나 이동 데이터가 없을 때 null이 반환됩니다. 고도는 일반 위치 센서만으로 정밀 계산이 어렵고, 속도는 기기가 정지해 있으면 계산할 이동 데이터 자체가 없습니다.

필드의미null이거나 값이 클 수 있는 이유
latitude / longitude추정 위도·경도요청마다 새로 계산되어 값이 미세하게 달라질 수 있음
accuracy오차 반경(미터)값이 클수록 실제 위치와 멀 가능성
altitude고도(미터)측정 센서·데이터가 없으면 null
speed이동 속도(m/s)정지 상태거나 이동 데이터가 없으면 null
timestamp측정 시각좌표를 얻은 순간의 시간

정리

  • 브라우저가 보여주는 위도·경도는 위성 GPS뿐 아니라 와이파이·기지국 정보까지 종합한 추정값입니다.
  • accuracy는 오차 반경(미터)이며, 숫자가 작을수록 실제 위치에 가깝다는 뜻입니다.
  • HTTPS(또는 localhost) 접속이 아니면 브라우저가 위치 API 호출 자체를 차단합니다.
  • altitude·speed가 null로 나오는 건 오류가 아니라 해당 센서·이동 데이터가 없다는 뜻입니다.
  • 좌표는 요청할 때마다 새로 계산되므로 같은 자리에서도 값이 조금씩 달라질 수 있습니다.
HTML5 Geolocation 좌표 확인기

브라우저 내장 Geolocation API로 위도·경도·정확도(오차 반경)와 구글 지도 링크, JSON 원본을 한 번에 확인합니다.

자주 묻는 질문

위치 권한을 거부하면 어떻게 되나요?

좌표 대신 오류 안내 문구가 표시됩니다. 브라우저는 이 상황을 표준 오류 코드인 PERMISSION_DENIED로 분류하며, 위치 계산 자체가 이뤄지지 않았다는 뜻입니다. 다시 확인하려면 브라우저의 사이트 설정에서 위치 권한을 허용으로 바꾼 뒤 새로고침해야 합니다.

HTTP 사이트에서는 왜 위치 정보가 뜨지 않나요?

Geolocation API는 표준 사양상 HTTPS로 암호화된 페이지이거나 localhost에서만 호출할 수 있는 '보안 컨텍스트' 기능이기 때문입니다. 일반 HTTP 페이지에서는 권한 팝업조차 뜨지 않고 오류가 반환됩니다.

GPS와 와이파이 중 어떤 방식으로 위치를 구했는지 알 수 있나요?

알 수 없습니다. 브라우저는 위성 GPS, 와이파이 접속점 정보, 기지국 정보를 종합해 위치를 추정할 뿐, 결과값에 실제로 어떤 소스를 사용했는지는 표시하지 않습니다. accuracy 숫자로 대략적인 신뢰도만 가늠할 수 있습니다.

같은 자리에서 다시 확인했는데 좌표가 조금 달라졌습니다. 오류인가요?

오류가 아닙니다. 위치는 요청할 때마다 그 순간 잡히는 신호를 바탕으로 새로 계산되는 추정값이라, 신호 조합이 미세하게 달라지면 좌표 소수점 자리도 함께 바뀔 수 있습니다.

가격 보기카톡 무료 상담