지도 제작 작업 메모

GPS 2010. 2. 22. 16:24
사람들이 흔히 말하는 GPS의 정확한 명칭은 GPS receiver이고, 줄여서 GPSr로 표기하지만 이미 GPS로 용어가 굳어버려서 나도 GPS와 GPSr을 혼용하다 보니 헷갈린다.

lock된 맵을 unlock하는 것은 가능하지만, NT format 을 non-NT format으로 변환하는 것은 현재로선 불가능하다. NT format에 관한 정보는 Garmin사의 비밀로 남아 있다.

Garmin .IMG 파일에는 RGN, TRE, LBL subfile이 포함된다. routable map에는 NET와 NOD subfile이 들어있다. 최근의 MapSource 및 Basecamp에서 사용하는 3d Shaded releif 정보는 DEM 섹션에 들어간다.  2009년 12월 22일 현재 sourceforge의 Garmin IMG format 소스는 DEM을 제외한 나머지 항목들을 리버스 엔지니어링 했다.  NT format과 마찬가지로 DEM format 역시 알려지지 않았다.

DEM 파일을 완전히 이용불가능한 것은 아니다. YoMismo는 이렇게 해결했다.

cgpsmapper의 설정 변수인 TreSize가 작을수록 GPSr의 랜더링 속도가 빨라진다. 대신 파일 사이즈는 커진다.

Topomap을 만들 때 globalmapper등의 프로그램에서 등고선을 단순화하는 알고리즘에서 사용하는 Simplify Level 값은 0.1과 1 사이에는 등고선 표현에 차이가 크나, 1과 10 사이에 차이는 거의 없다. 0.1일 때 파일 크기가 작지만 1일 때는 약 2배 이상 커진다.

http://gpsmid.sourceforge.net/ -- osm 벡터 파일을 직접 랜더링. 드디어 나왔다!
http://www.andnav.org/ -- Android Navigation. andnav1은 google 맵을 사용했지만 ver2 부터는 osm tile을 사용한다.

POI를 잔뜩 수집했다. 주로 산 이름인데, 여러 개가 겹치고 각기 조금씩 다른 경위도에 위치해 있는데다가 양이 많아 일괄적으로 수동으로 수정하기는 곤란했다. 예를 들어 태을봉에 해당하는 POI가 모두 7개인데, 정상 위치에서 벗어난 것이 3개, 정상 부근에서 경위도가 조금씩 틀어진 것이 4개로 정확히 정상 중심에 위치하는 것은 없다.

그래서 이중 정상 위치에서 너무 벗어난 것을 제외하고 남은 4개에서 정상 위치에 가장 근접하게 POI의 경위도를 조정하는 작업을 하기로 했다. 해당 경위도의 해발 고도를 알려면 DEM이 필요하다. 아쉽게도 이전에 사용하던 DEM 지도는 global mapper에서만 불러올 수 있고 대체 무슨 포맷인지 알 수 없다(게다가 약간 위치가 어긋났다), 두번째로 NASA가 제공하는 DEM 지도는 정밀도가 떨어져 정확한 정상 위치를 파악하는 용도보다는 고도 변화를 추적하는 정도의 용도로 사용 가능하다(몇몇 사이트나 프로그램이 이것을 사용해 딱 그 목적으로 사용했다).

KOTM에 사용하는 DEM을 MP로 변환한 다음, MP로부터 등위도 DEM을 다시 만들어 이것을 프로그램에서 사용가능한 TIFF나 비트맵으로 만든 다음 사용하려고 시도했다. 최소한 POI의 정상 위치는 이렇게 해서 판별이 가능했다. 하지만 DEM -> MP -> DEM으로 만드는 과정에서 MP가 10m 이하의 등위도 선분을 만들지 못하는 관계로 바다 위의 바위나 섬 주변의 낮은 봉우리는 처리할 수 없었다. 어쨌든 이 작업에 근 일주일을 보냈고 에러는 비교적 낮았다.

그동안 OSM에 올렸던 POI와 새로 수집한 POI를 합치면 약 20만개가 된다. 이들을 정리해서 다시 올릴 계획이다. 연초에 잠시 한가한 틈에 XML Pull Parser를 만들었고, OSM 파일(약 400MB)에서 POI만 추출하는 프로그램을 짰다. 요즘은 바빠서 통 이 작업을 하지 못했다.

정리:
DEM 작업 5일
POI 작업 5일
XPP 제작 및 POI 작업 14일

완결을 짓긴 해야 하는데 언제 다시 작업을 재개하게 될 지 불확실하다. 그 동안 정리되지 않은 POI를 사용해 맵 검증을 하고 돌아다녔다.



,