집에 와서 생각해보니 용어는 그럴듯 하지만 별로 와닿지 않는 글 같아서
좀 더 알기 쉽게 적겠습니다.
우선 지구는 장반경(a)와 편평도(f)의 타원체로 가정합니다.
이 타원의 중심은 질량 중심을 의미합니다.
3차원의 모양을 측면에서 바라보면 타원이고, 위에서 바라보면 원입니다.
이 타원체를 기준으로 위치를 나타내기 위한 한 방법은
위도(φ), 경도(λ)에 타원체고(h)를 이용하는 것입니다.
경도는 우리나라는 본초 자오선을 기준으로 반시계 방향으로
양의 각도를 갖는다고 해석하면 됩니다.
(나중에 x, y, z 의 3차원 좌표로 나타낼 때 x축이 본초 자오선 방향입니다.)
위도는 위치가 타원 위의 한 점이라고 생각했을 때 그 점의 접선에 수직인 직선이
적도면과 이루는 각입니다.
실제 지구와 지구를 가정한 타원 모델은 비슷하지만 같지는 않기 때문에
위치가 타원체 밖일 수도 있고, 안일 수도 있습니다.
그래서 타원체고를 이용해 위치를 정확(?)하게 나타냅니다.
타원체고는 위도를 나타낼때의 접선과의 수직 거리입니다.
(타원체고 만큼 타원체에서 위치 이동을 하게 되더라도 위도 경도는 같습니다.)
위도, 경도, 타원체고의 정보는 3차원상의 한 점을 나타내기 때문에
x, y, z 좌표로 변경이 가능합니다.
원의 방정식, 타원의 방정식과 간단한 미분만 이용하면 됩니다.
실제로 GPS 수신기는 x, y, z 좌표를 얻은 다음 이것을 좌표를 표현하는
기준이 되는 타원체에 맞게 위도, 경도, 타원체고로 변환해서 보여줍니다.
음.. 참고로 굳이 NMEA 방식을 사용하지 않아도 된다면
Text 모드를 이용하는 것도 괜찮습니다.
제가 사용하는 GPS는 Garmin eTrex 인데 Text 모드로 사용하고 있습니다.
시작문자는 @이고, 종료 문자는\r\t 입니다.
한 줄씩 받아서 원하는 정보만 잘라서 사용하고 있습니다.
그리고 두 번째 질문의 일반 지도와의 차이에 대한 것은
TM, UTM 좌표계에 대해서 찾아보시면 됩니다.
3차원의 모양을 2차원으로 나타냈기 때문에 위도, 경도는 같더라도
지도상에서 보는 거리는 실제 거리와 위도에 따라 많은 차이가 있습니다.
위도, 경도 정보를 3차원 위치 좌표로 변환하면 거리 정보를 알 수 있습
위도, 경도 정보를 3차원 위치 좌표로 변환하면 거리 정보를 알 수 있습니다.
http://www.posc.org/Epicentre.2_2/DataModel/ExamplesofUsage/eu_cs35.html
http://mercury.jnu.ac.kr/~etnalry/web_GPS_eq.html
GPS에서 위도 경도 값을 출력할때 어떤 타원체를 기준으로 할지는 선택사항이고
지정하지 않을 경우는 WGS84 좌표계를 기준으로 계산합니다.
우리나라에서 사용하는 표준 타원체는 GRS80이고, 좌표계는 ITRF를 이용합니다.
지도상에 나타냈을때의 위도, 경도 좌표도 WGS84나 GRS80을 기준으로 했다면
같은 값으로 보셔도 상관 없습니다.
만약 다른 타원체를 기준으로 만들었다면 변환을 해줘야 합니다.
집에 와서 생각해보니 용어는 그럴듯 하지만 별로 와닿지 않는 글 같아서
집에 와서 생각해보니 용어는 그럴듯 하지만 별로 와닿지 않는 글 같아서
좀 더 알기 쉽게 적겠습니다.
우선 지구는 장반경(a)와 편평도(f)의 타원체로 가정합니다.
이 타원의 중심은 질량 중심을 의미합니다.
3차원의 모양을 측면에서 바라보면 타원이고, 위에서 바라보면 원입니다.
이 타원체를 기준으로 위치를 나타내기 위한 한 방법은
위도(φ), 경도(λ)에 타원체고(h)를 이용하는 것입니다.
경도는 우리나라는 본초 자오선을 기준으로 반시계 방향으로
양의 각도를 갖는다고 해석하면 됩니다.
(나중에 x, y, z 의 3차원 좌표로 나타낼 때 x축이 본초 자오선 방향입니다.)
위도는 위치가 타원 위의 한 점이라고 생각했을 때 그 점의 접선에 수직인 직선이
적도면과 이루는 각입니다.
실제 지구와 지구를 가정한 타원 모델은 비슷하지만 같지는 않기 때문에
위치가 타원체 밖일 수도 있고, 안일 수도 있습니다.
그래서 타원체고를 이용해 위치를 정확(?)하게 나타냅니다.
타원체고는 위도를 나타낼때의 접선과의 수직 거리입니다.
(타원체고 만큼 타원체에서 위치 이동을 하게 되더라도 위도 경도는 같습니다.)
위도, 경도, 타원체고의 정보는 3차원상의 한 점을 나타내기 때문에
x, y, z 좌표로 변경이 가능합니다.
원의 방정식, 타원의 방정식과 간단한 미분만 이용하면 됩니다.
실제로 GPS 수신기는 x, y, z 좌표를 얻은 다음 이것을 좌표를 표현하는
기준이 되는 타원체에 맞게 위도, 경도, 타원체고로 변환해서 보여줍니다.
음.. 참고로 굳이 NMEA 방식을 사용하지 않아도 된다면
Text 모드를 이용하는 것도 괜찮습니다.
제가 사용하는 GPS는 Garmin eTrex 인데 Text 모드로 사용하고 있습니다.
시작문자는 @이고, 종료 문자는\r\t 입니다.
한 줄씩 받아서 원하는 정보만 잘라서 사용하고 있습니다.
그리고 두 번째 질문의 일반 지도와의 차이에 대한 것은
TM, UTM 좌표계에 대해서 찾아보시면 됩니다.
3차원의 모양을 2차원으로 나타냈기 때문에 위도, 경도는 같더라도
지도상에서 보는 거리는 실제 거리와 위도에 따라 많은 차이가 있습니다.
저는 3차원 정보만을 이용하고 있어서 정확한 설명은 드리지 못하겠습니다.
GPS 로 구한 두 지점의 (위도, 경도) 정보를 바탕으로 두 지점 사이
GPS 로 구한 두 지점의 (위도, 경도) 정보를 바탕으로 두 지점 사이의 거리를 구하는 것은 다음 링크들에서 참고 하시기 바랍니다.
Geographical Distance Calculations
http://www.zipcodeworld.com/docs/distance.pdf
Aviation Formulary V1.42
http://williams.best.vwh.net/avform.htm
GPS 를 이용하신다면 다음의 정보도 유용하리라 믿습니다.
Format for Latitude-Longitude Pairs: Rationale and Explanation
http://www.edavies.nildram.co.uk/lat-long/version-1/lat-long-rationale.html
그리고, 이미 GPS signal 을 읽어 들이는 모듈을 개발하신 거 같긴 하지만,
혹 처음부터 하셔야 하는 분들은 다음 링크들을 참고 하시면 좋을 것 같습니다.
NMEA0183 C++ Classes
http://www.samblackburn.com/nmea0183/index.html
Code Project] Add GPS support to your desktop
http://www.codeproject.com/system/gps_support.asp?target=gps
도움이 되셨기를..
다들 자기 이야기 밖에 할 줄 모르는 세상에서,
메아리 같은 사람 하나 필요할 거 같아서...
맑은음자리님, echo님 너무 너무 감사합니다. 덕분에 많은 시간
맑은음자리님, echo님 너무 너무 감사합니다.
덕분에 많은 시간을 줄이게 되었습니다.
감사합니다.
마침 찾던 정보라. ^^
덕분에 한결 마음이 가벼워 졌어요. ^^
자전거 타고 여행다니는 사람들은
거리, 시간, 평속, 최고 속도 등등 ... 그런 정보가 다 나오는 GPS를 씁니다.
구글 어스와도 연동해서 쓰더군요. 제대로 하려면 구글 어스 유료 서비스 써야 합니다.
댓글 달기