봄날은 갔다. 이제 그 정신으로 공부하자

모두가 사용하지만 모두가 모르는 좌표계 이해하고 넘어가기 본문

android Tip

모두가 사용하지만 모두가 모르는 좌표계 이해하고 넘어가기

길재의 그 정신으로 공부하자 2020. 11. 25. 15:03

해당 글에는 다수의 전문 용어가 나오지만 알아두면 쓸모 없는 지식 관련 이야기도 나옵니다. ^___^;;;

해당 문서에 나오는 쓸모 없는 지식

  • "적도", "자오선", "날짜 기준선 구분"의 유래
  • 우리나라가 위치한 위도&경도 영역
  • "지구는 원형이 아니다. 심지어 제대로된 타원형도 아니다."라는 사실

해당 문서에 나오는 쓸모 있는 지식

  • 맵 관련 개발 시 좌표 체계에 대한 이해도 상승

맵 or 지도 관련 개발을 하다보면 흔히 아래와 같은 숫자를 볼 있습니다.

lat:37.51348243260285, lng: 127.03760227688309

해당 글은 이 숫자들이 무엇을 기반으로 나열되는 것인지를 이해하기 위해 습득한 지식을 정리한(인터넷을 검색한 결과를 정리한...)글 입니다.

 

GCS(Geographic Coordinate System)

지리 좌표계(GCS)는 지구상에 위치를 정의하는데 3차원의 구면을 이용하는 좌표계로 한 지점은 위도(latitude)와 경도(longitude) 값으로 나타냅니다. 위도와 경도는 지구 중심에서 지표면 상에 지점까지 측정된 각으로 흔히 도(degrees)로 표시합니다. 위도와 경도에 대해 설명하면 아래와 같습니다.

 

위도(latitude)

위도는 지구를 테이블위에 올려놓고 가로로 그은 선으로 생각하면 이해하기 쉽습니다.

위 그림처럼 위도는 Equator를 기준으로 위쪽은 플러스 아래쪽은 마이너스 값을 가집니다.

모두 아시겠지만 Equator는 "적도"입니다.

우리에게 적도로 알려진 유래는 고대 중국 천문학에서 적도를 붉은 색으로 표현해서라고 합니다.

위도는 적도를 중심으로 위쪽은 0 ~ 90도의 값을 가지고 아래쪽으로는 0 ~ -90도의 값을 가집니다.

 

경도(longitude)

위 그림처럼 경도는 영국의 그리니치 천문대를 기준으로 동쪽은 플러스 서쪽은 마이너스 값을 가집니다.

그리니치 천문대를 기준으로 북극과 남극을 잇는 선을 Prime Meridian 우리말로 "본초 자오선" 이라고 합니다.

국제 날짜 기준선은 경도를 180도를 기준으로 구분합니다.

여기서 자오선이라 함은 12간지를 원형으로 배치했을 때 맨 위 쥐(자)와 맨 아래 말(오)를 연결하는 선이라해서 자오선이라 합니다.

 

경도 0도를 기준으로 동경 0 ~ 180도의 값을 가지고 서경 0 ~ -180도의 값을 가집니다.

 

위도 & 경도 정리

위도는 적도를 중심으로 위쪽은 0 ~ 90도의 값을 가지고 아래쪽으로는 0 ~ -90도의 값을 가집니다.

경도는 0도를 기준으로 동경 0 ~ 180도의 값을 가지고 서경 0 ~ -180도의 값을 가집니다.

 

우리나라의 위치

지리 좌표계(GCS)를 기준으로 우리 나라는 북위 33 ~ 43도, 동경 124 ~ 132도에 위치하고 있습니다.

이 정보로 알 수 있는 것은 우리 나라는 북반구에 위치해 있으면 영국(그리니치 천문대 기준)을 기준으로 동쪽으로 더 가깝다는 것을 알 수 있습니다.

 

중요.

간혹 여기서 아 우리나라가 영국(그리니치 천문대 기준)을 기준으로 위도 33 ~ 43도, 경도 124 ~ 132도의 거리가 떨어져 있다라고 생각하고 있는 분들이 계실 수 있는데 절대로 거리가 아닙니다.

각도 "도" "도" "도"가 기준입니다. 지구 중심과 영국(그리니치 천문대 기준)을 기준으로 우리 나라는 위도 33 ~ 43도, 경도 124 ~ 132도에 위치하는 것 입니다.

즉, 기준을 중심으로 거리가 떨어져 있는 개념이 아닌 위도 경도 기준에 위치해 있는 개념 입니다.

 

지구는 원형이 아니다. 심지어 제대로된 타원형도 아니다.

본 항목의 제목 그대로 지구는 원형이 아닙니다. 심지어 제대로된 타원형도 아닙니다.

적도 반지름이 극반지름보다 약간 긴 일그러진 아래와 같은 타원체입니다.

그렇다 보니 지구 중심으로 한좌표 체계에 문제가 발생했습니다.

그래서 과거에는 각 국가별로 최적화된 지역 지리 좌표계를 선호했습니다.

우리나라도 일제시대의 영향으로 일본에서 쓰던 타원체(1841년에 만들어진 베셀(Bessel)타원체(동경좌표계, Tokyo Datum))를 그대로 사용합니다.

하지만 현재 우리나라의 많은 지도 서비스들은 대부분의 좌표 체계는 우리 큰형님 쌀국 미국이 군사 및 GPS 운용을 목적으로 열심히 위성을 쏘아올리고 구축한 지구 타원체 좌표인 WGS84(미 국방성이 1984년에 채택한 GPS 타원체)를 사용합니다.

* Google map,  Naver 지도, Daum 지도 API 기본좌표 체계로 WGS84 위도/경도 좌표계를 사용함.

그러니 대개 우리가 웹 및 내비게이션에서 사용하는 좌표 체계는 미국 기준의 WGS84라고 생각하시면 됩니다.

우리나라 국가 기본 좌표 체계는 아래표와 같습니다.

 

마무리

위 서론에 언급한 것과 같이 좌표계는 아래와 같이 표시 됩니다.

lat:37.51348243260285, lng: 127.03760227688309


소수점 이하의 숫자는 서비스마다 갯수(대개 소숫점 6자리 이상)가 다릅니다.

위 언급한 것 처럼 기준과 적도를 중심으로한 각도(degrees) 체계이므로 소수점 이하의 숫자가 많을수록 좌표는 정확하지만 소수점 6자리의 숫자의 정밀도가 10cm의 해상도를 가지므로...

그 이하의 숫자는 바늘구멍 표시하는 것도 아니고 큰 의미 없는 노이즈 값 정도로 생각하면 됩니다.

일반적으로 소수점 이하 숫자당 해상도는 아래 표와 같습니다.

자! 이제 위 좌표(lat:37.51348243260285, lng: 127.03760227688309)의 위치가 어디인지 확인해보겠습니다.

 

먼저 매우 매우 전통적이며 방금 설명한 좌표계를 이해했다면 누구든 할 수 있는 정밀하고 매우 수고스러운 방법 먼저 소개해드립니다.

엄청나게 큰 지구본하고 각도기, 콤파스, 연필, 지우개, 칼, 매우 날카롭고 긴 바늘 마지막으로 돋보기를 준비해주세요.

1. 지구본을 책상위에 올려 놓고 지도에서 그리니치 천문대를 찾습니다.

2. 그리니치 천문대를 기준으로 칼로 세로로 지구본을 반으로 가른 후 경도가 플러스 값이므로 왼쪽은 버려주세요.

3. 적도를 중심으로 칼로 가로로 지구본을 다시 반으로 가른 후 위도가 플러스 값이므로 아래쪽은 버려주세요.

4. 자 이제 1/4남았네요.

5. 각도기 지구 중심부에 대고 위로 127.037... 도 만큼 올려주세요. 거기에 점찍고.

6. 점을 기준으로 지구 중심에서 가로로 37.51...도 만큼 이동해주세요. 

7. 매우 날카롭고 매우 긴 바늘을 가지고 지구 중심부에서 세로 127.37..., 가로 37.51도 방향으로 찔러주세요.

* 밖에서 바늘을 찌르는게 아니라 지구 중심부에서 외곽으로 찌르는 게 중요합니다. 방향을 헷갈리면 안됩니다.

8. 밖에서 보면 바늘이 삐져나올때까지 찔러 넣어주시면됩니다.

 

9. 바늘이 삐져 나오면 그부분을 돋보기로 보시면 원하는 위치를 확인할 수 있습니다.

 

다음으로 매우 쉬운 방식 입니다.

1. 크롬 브라우저 실행

2. 검색창에 구글맵 입력해 구글맵 실행

3. 실행된 구글맵의 URL을 보면 친숙한 것들을 볼 수 있습니다.

     https://www.google.co.kr/maps/@36.8369739,126.9935074,11.41z?hl=ko

     이것을 보니 현재 구글맵은 소수점 7자리 1cm까지의 해상도 나타내는 것을 알 수 있습니다.

     뒤의 11.41z는 zoom 입니다. 숫자가 클수록 줌인 됩니다.

4. URL을 아래와 같이 살짝 바꾸어 주고 엔터키를 누릅니다.

     https://www.google.co.kr/maps/@37.5134824,127.0376022,18.12z?hl=ko

     뒤에 소수점 더 많이 입력해도 무관하지만 해상도가 더 높게 표시되지는 않으므로 7자리까지만 입력해주고 18로

     줌인 합니다.

5. 해당 좌표의 위치가 학동역 인근인 것을 알 수 있습니다.

 

그럼 전 이만...

'android Tip' 카테고리의 다른 글

Coroutine - part1  (0) 2020.12.25
android 다양한 주변장치 연동 (NFC, USB)  (0) 2020.12.24
Custom 버튼 만들기  (0) 2020.12.21
숫자에 콤마 추가 시 주의할 점  (0) 2020.12.11
여러개의 Activity 한번에 종료하기  (0) 2020.11.23
Comments