전 웹하드에 올려 편하게 다운로드 할 수 있게 제공할뿐 KOTM과 관련이 없습니다.
KOTMv3.1 소개
=============
KOTMv3.1은 KOTMv3의 버그를 수정하고, 지도 작업을 좀 더 편하게 만든 것입니다.
KOTM은 Garmin GPS용 자료로 Korea OSM & Topo Map의 약어입니다. 여러 사람들이 업데이트하고 있는 공개 지도 자료와 인터넷에서 구한 각종 자료를 취합해 만든 지도입니다.
2008년 10월 초 외국인들이 볼 수 있는 한국 지도를 만들어 보자는 취지에서 개인적으로 OSM 프로젝트를 시작하게 되었고, 그렇게 만든 지도를 Garmin GPS에 넣어 개인적으로 사용하다가 이왕이면 다른 사람들도 사용할 수 있게 해보자 하는 취지에서 KOTM 패키지를 만들게 되었습니다.
부탁드리건대, OSM에 많이 참여해 주십시오. OSM은 단순히 Garmin GPS에서만 사용할 수 있는 지도가 아니라, 그야말로 무궁무진한 응용이 가능한 무료 지도 만들기 프로젝트입니다.
KOTM의 원본 자료인 OSM 맵을 확인하려면 이곳에 들어가 보세요:
http://www.openstreetmap.org/?lat=37.125&lon=127.755&zoom=9&layers=B000FTF
다운로드
========
다음메일: 1주일 동안 100회 유효
http://bigmail31.mail.daum.net/Mail-bin/bigfile_down?uid=tLXd4QHj2VNTS8sZiFBn7.tJObq7OTh.
Garmin GPS용 지형도+OSM 지도 (KOTMv3.1) 다운로드
저작권
======
이 프로그램에 저작권은 없습니다.
자유롭게 배포하고 사용하세요.
설치에 앞서
===========
설치본의 파일 크기는 186MB, 설치 후 크기는 1.04GB 입니다.
HDD에 최소한 1.2GB의 여유 공간이 있어야 합니다.
설치 방법을 개략적으로 설명하면,
* gampsupp-kor.img나 gmapsupp-eng.img파일 중 하나를 gmapsupp.img로 이름을 바꿔 장치에 복사하고,
* osm data 다운로드는 util\make get을 실행하고,
* 지도 제작은 util\make all을 실행한다, 로 요약할 수 있습니다.
이전 버전과 달라진 점
=====================
제작본과 배포본을 합치고 파일 크기를 줄였습니다. OSM 지도 데이터는 2009-10-22자를 사용합니다.
TYP 파일을 사용해 지도의 POI를 약간 더 보기 좋게 고쳤고, 등고선 때문에 가려지는 footway, cycleway, path 등의 라인 스타일을 눈에 잘 띄게 변경했습니다.
지도 제작에 필요한 시간이 KOTMv3에 비해 1/5로 단축되었습니다.
MapSource용 파일을 포함하지 않았으며, 설치시 MapSource용 데이터를 생성합니다. 아울러, 설치 디렉토리를 변경할 때 귀찮은 작업이 없어졌습니다.
mkgmap-r1177 대신 mkgmap-r1299 버전이 들어갔습니다.
Garmin Mobile XT 관련:
- 한글이 제대로 나옵니다.
- 한글 POI와 도로명 검색이 됩니다.
이전버전에선 한글이 깨져보였지만 이젠 잘보임~!
KOTM v2.5 & KOTM v3:
KOTM v2.5 대전 지역
KOTM v3.1:
KOTM v3.1 대전 지역
알려진 버그
===========
polygon의 poi명 검색이 안 됩니다. mkgmap의 문제 같은데 mkgmap이 워낙 빠른 속도로 업그레이드 되는 프로그램이라 기다리다 보면 언젠가는 되겠지요.
해안선이 어설픕니다. mkgmap의 OSM coastline 해석이 아직 완전하지 않습니다. mkgmap으로 해안선을 만들면 강화도, 제주도 등 많은 수의 섬이 물에 잠기는 관계로, 2.5버전 이후부터 주욱 별도의 해안선 파일을 사용하고 있습니다.
등고선이 파묻히는 현상. priority를 지정하더라도 mkgmap의 renderer가 국립공원, 일부 공원을 가끔 땅 속에 묻어 버립니다. 사용자 정의 TYP 파일을 이용해 이 문제를 가능한 최소화했습니다.
설치 방법
=========
KOTMv3.1.exe를 실행하여 pc에 설치합니다. 기본 설치 디렉토리는 C:/Garmin/KOTMv3.1 입니다. 반드시 이 디렉토리로 지정해 주십시오. 안그러면 c.bat가 실행되지 않습니다.
Garmin GPS에 지도를 설치하려면:
* gmapsupp-eng.img는 영문 GPS용, gmapsupp-kor.img는 한글 GPS용 입니다. 이중 원하는 파일을 gmapsupp.img로 이름을 바꾸어 장치에 복사합니다.
* GPS에서 SD 카드를 꺼내 PC에 연결하여 직접 복사: 가장 속도가 빠른 방법입니다.
* gmapsupp.img 파일을 GPS에 직접 복사: GPS를 USB Storage 모드로 변경한 후 (Garmin Vista HCx의 경우 Setup->Interface) 이동식 디스크의 Garmin 디렉토리에 GMAPSUPP.IMG 파일을 복사
* sendmap.exe로 3*.img 파일을 로드한 후 GPS가 연결된 상태에서 전송: 속도가 느리고, sendmap.exe 파일을 별도로 구해야 하며 절차나 과정은 위의 둘과 동일합니다. 별로 권하지 않습니다.
Mobile XT에 설치하려면:
* 기억장치카드(Storage Card?)의 /Garmin 디렉토리 밑에 gmapsupp-kor.img을 gmapsupp.img로 복사합니다. ActiveSync로 하는 것은 속도가 매우 느리므로 WM5torage 등의 프로그램을 사용해 모바일 장치를 USB storage로 변경하던가, 아니면 sd 카드를 pc에 직접 연결해 복사하는 것이 좋습니다.
설치가 끝나면 GPS에서 지형도와 도로를 확인합니다.
MapSource에서 지도를 보려면:
* KOTMv3.1.exe를 실행하면 자동으로 실행되나, 새로 지도를 제작하게 되면 msb.bat를 실행합니다. msb.bat는 gmapsupp-kor.img 파일로부터 MapSource 및 지도 제작에 필요한 *.img 파일을 분리하고 이들 *.img 파일을 이용해 MapSource용 tdb 파일과 overview map, 그리고 install.bat 등 MapSource에 필요한 일체의 파일을 생성합니다.
지도의 업데이트
===============
OSM 한국 지도는 꾸준히 업데이트 되고 있습니다. 설치 후 변경된 OSM 지도로 새로운 GMAPSUPP.img를 만들려면 OSM 서버에서 지도 데이터를 다운받아서 작업해야 합니다. 제작에 필요한 S/W는 Java runtime을 제외하고 이 패키지 내에 모두 포함되어 있습니다.
* Java Runtime -- mkgmap을 실행하기 위한 런타임. http://www.sun.com 에서 다운로드
* gmt.exe -- MapSource용 img split & join에 사용. 최신 버전은 http://www.anpo.republika.pl/download.html 에서 다운로드.
* cgpsmapper.exe -- MapSource용 preview 파일 및 tdb 파일을 만들 때 사용합니다.
* mkgmap.jar -- java 프로그램으로 *.mp, *.img, *.osm 등의 파일로부터 *.img 파일을 생성. 최신 버전은 http://www.mkgmap.org.uk/index.html 에서 다운로드.
* wget -- 웹에서 OSM data를 다운로드 받을 때 사용하는 프로그램. 브라우저로 직접해도 되나 이 프로그램을 사용하는 것이 편리합니다.
* delcache.exe -- MapSource의 tile cache를 지울 때 사용합니다. 지도를 빈번히 만들고 MapSource에서 확인할 때 필요합니다.
* make.exe -- Makefile을 읽어 파일의 의존성을 검사해 지도를 빌드할 때 사용합니다.
* ktopo.img -- 등고선 및 해안선 Mapset
* kosm-kor.img, kosm-eng.img : sk1.osm, sk2.osm을 변환해 각각 한글, 영문 Mapset으로 만든 것입니다.
* sk1.osm, sk2.osm -- 남한 OSM 지도 자료
지도 변경분을 다운받아 전체 지도를 업데이트하려면 도스창에서 c:\garmin\kotmv3.1 디렉토리로 이동한 다음 util\make get을 하면 sk1.osm, sk2.osm이란 파일을 다운받습니다. 도스창이 두 개 나타나서 진행상황이 표시될 것입니다. 다운에 걸리는 시간은 OSM 서버 상태에 따라 유동적입니다. 길면 1시간 가량 걸립니다.
주의: 다운로드를 중간에 중단하면 그 다음부터 일정 시간 동안은 다운로드가 되지 않습니다. OSM XAPI Server의 트래픽 로드가 상당해서 그것을 제한할 목적으로 같은 좌표의 데이터를 다시 받을 때는 시간 제한을 두어 금지한 것입니다.
다운이 끝나면 c:\garmin\kotmv3.1\c.bat를 실행합니다. 프로그램이 처음 설치될 때에도 이 프로그램이 실행되어 gmapsupp-kor.img, gmapsupp-eng.img를 만듭니다. 주의: 메모리가 1GB 이하일 경우 프로그램이 제대로 실행되지 않을 수 있습니다.
*.osm 파일을 다운 받은 후, 지도를 만드는 작업에 걸리는 시간은 AMD Athlon II X2 240 (2.8Ghz), 2GB 메모리에서 619secs, 즉 약 3분 가량 걸렸습니다.
OSM 지도의 활용
===============
아쉽지만 도로의 route 정보가 현재 osm 지도에 없기 때문에 현재로서는 osm 지도를 카 네비게이션 용도로 활용할 수 없습니다. osm 지도 제작에 참여하는 사람이 점점 늘어나면 이것도 차차 구현되겠지요.
자동차 내비게이션 용도는 포기했고, 일단 제 경우에는 MapSource로 가게 될 자전거 경로나 등산로의 트랙로그를 작성하여 GPS에 넣은 후 trackback으로 길을 따라 갑니다. 처음 가는 곳에서 길을 잃지 않고, 계획에 맞춰 갈 수 있다는 것이 장점입니다. 특히 길이 없는 산악에서 trackback이 아주 유용합니다.
누군가 만들어 놓은 tracklog를 MapSource에서 불러와 일단 경로를 점검하는 용도가 있지요. .gdb나 .gpx 파일을 불러오면 MapSource 지도 상에 경로가 표시됩니다.
MapSource는 아직까지는 사용자가 route나 tracklog를 만들 수 있는 가장 손쉬운 방법입니다. MapSource에서 route나 tracklog를 만들어 GPS로 로드하면 위에서 언급한 trackback 용도로 사용할 수 있습니다. 지도를 표시할 수 없는 Garmin Basic series에서도 tracklog를 사용 가능합니다. route보다 track이 활용도가 좀 더 높습니다. MapSource에서 track을 작성할 때 주로 사용하는 단축키가 T와 H입니다. h를 눌러 필요한 곳으로 이동한 다음, t 키를 누르고 마우스를 클릭, 클릭 해 가며 트랙을 그립니다. 다 그린 트랙에 적당한 이름을 붙이고 gps에 전송하면 됩니다. 해보면 아주 간단합니다.
자동차/자전거/걷기 등으로 한참 돌아다닌 후 GPS에 생성된 tracklog는 MapSource로 다운받아 손쉽게 경로를 볼 수 있습니다. 물론 Google Earth나 wikiloc, gpson, sportrack 등의 사이트나 프로그램이 훨씬 좋지만 MapSource의 장점은 그 자리에서 바로 트랙로그를 수정/변경/합성하여 새로운 트랙로그를 만들 수 있다는 점입니다.
생성된 트랙로그를 MapSource에서 확인하고, MapSource에 나타나지 않은 도로나 등산로를 새로 개척했다면 , 트랙로그를 적당히 합치고 point를 감소시킨 다음, 이 트랙로그를 OSM 사이트나 JOSM 등의 프로그램을 사용하여 불러들이고 적당한 이름을 붙이면 osm 지도에 새로운 길이 생기게 됩니다. 이렇게 새로 생긴 길을 포함한 osm 자료를 다시 다운받아 지도를 제작하는게 제가 작업하는 방식입니다. 그렇게 해서 osm 지도에 상당 분량의 등산로와 자전거 도로를 만들었습니다. 즉, osm 지도가 점점 업그레이드 되는 거지요.
OSM 지도 제작을 할 때 한 가지 주의 내지는 당부 말씀을 드립니다. OSM 지도 제작 작업 중 poi나 도로의 이름을 name 태그만 지정하세요. 만약 한글-로마자 변환 규칙을 잘 알고 계시다면 한글 및 영문 이름 태그를 함께 사용하셔도 되지만, 그렇지 않을 경우에는 굳이 영문 이름을 지정하지 않아도 됩니다. 즉, 한글로만 명칭을 쓰는 것이 편할 것입니다. 한글 이름은 제가 1주일에서 1개월 단위로 한반도 전체를 대상으로 영문 및 영문 로마자로 자동 변환하고 있습니다.
기술적인 부분
=============
지도는 make.exe가 읽어들인 Makefile의 파일 의존성 검사에 따라 만들어집니다. 도스창에서 다음 명령을 실행하면 지도 제작에 관련한 일련의 작업을 수행합니다. 도스창에서 기준 디렉토리는 C:\Garmin\KOTMv3.1 입니다.
util\make all -- 한글, 영문 gmapsupp.img를 만들고 mapsource용 지도를 설치합니다.
util\make install -- 한글 gmapsupp.img를 만들고 mapsource용 지도를 설치합니다.
util\make get -- osm 서버에서 지도를 다운받아 sk1.osm, sk2.osm으로 저장합니다.
util\make clean -- 생성된 지도를 지웁니다. 주의: mapsource용 자료도 삭제됩니다.
ktopo.img는 등고선 mapset입니다. fid=456, pid=1, codepage=949. ktopo.img는 *.mp 파일로 만든 것입니다. KOTMv3의 제작본에 포함된 *.mp 파일들로 만든 것입니다. KOTMv3.1에는 *.mp를 포함하지 않았습니다.
kosm-kor.img는 한글로 만들어진 OSM 지도 mapset입니다.
kosm-eng.img는 영문으로 만들어진 OSM 지도 mapset입니다.
50000000.img는 해안선 자료입니다. mkgmap의 --generate-sea 옵션의 속도가 매우 느린 관계로 해안선만 미리 img 파일로 만들어 놓은 것입니다.
gmapsupp-kor.img = kosm-kor.img + ktopo.img + 50000000.img
gmapsupp-eng.img = kosm-eng.img + ktopo.img + 50000000.img
kotm-custom.TYP 파일은 KOTM에서 사용하는 사용자 정의 심벌 파일입니다. 몇몇 polygon 및 도로를 좀 더 잘 보이게 하기 위해 일부분 수정했습니다. 사용자 정의 심벌 파일을 잘 지정하면 지도를 맵시있게 나타낼 수 있습니다. 이 파일은 소스가 없기 때문에 고치려면 온라인 TYP 에디터인 http://ati.land.cz/gps/typdecomp/editor.cgi 를 사용하세요. 자세히 설명하려면 내용이 꽤 길어지는 관계로 설명은 생략하겠습니다.
-*-
transparency와 draw priority는 mapset 단위로만 작동합니다. topo map과 osm map의 draw priority를 다르게 지정해 줄 경우 지도가 그려지는 우선 순위가 바뀌나 이렇게 하면 글자가 등고선에 가려져 안 나오거나, osm 지도의 polygon에 등고선이 파묻히는 현상이 나타납니다. 그래서 두 지도의 우선 순위는 같고 두 지도 모두 투명하게 설정되어 있습니다. 아울러 kotm-custom.TYP 파일로 polygon 영역을 transparent하게 지정해 놓아 두 지도가 겹치는 부분에서 가능한 서로가 서로를 가리는 상황이 되도록 하지 않았습니다. 여러 벌의 지도를 제작해서 이것을 합성하다가 보면 draw priority와 transparency, symbol(*.TYP) 사이에서 곤혹스러워 지는 경우가 벌어질 수 있으므로 주의하세요.
gmt.exe는 map 또는 mapset을 합성하거나 분리하는데 유용한 프로그램입니다(상용지도의 락을 제거할 때도 사용하지요). gmaptool이라는 GUI front-end를 가지고 있습니다. gmt.exe를 커맨드 라인 방식으로 사용하는 것이 어렵다면 gmaptool을 다운받아 설치하면 좀 더 쉽게 작업할 수 있습니다.
make.exe는 Makefile로부터 파일 의존성을 검사해 지도를 빌드하는 unix 프로그램입니다. GNU W32 프로젝트 덕택에 win32 환경에서도 사용할 수 있는데, 지도 제작이 꽤 복잡한 관계로 마치 프로그램을 빌드 할 때처럼 makefile을 이용해 지도를 만들게 되었습니다.
지도 제작은 그리 시간이 걸리지 않지만, 지도를 테스트하는 것은 좀 다른 문제입니다. Garmin GPS나 mobile phone 등에 제작된 지도를 올리고 테스트하는 시간이 상당합니다. 하루 종일 만든 지도를 '테스트'해도 수십 번을 넘기가 힘들지요. 따라서 제가 시도해 보지 않은 방법이나 옵션도 있을 것으로 생각됩니다.
-*-
makefile에서 mkgmap을 사용하여 *.osm 파일로부터 *.img 파일을 만드는데, 이때 사용하는 옵션의 의미는 다음과 같습니다. 언급되지 않거나 더 자세한 설명을 원하면 mkgmap 개발 페이지나 소스를 참조하세요. 여기서 사용하는 옵션 말고도 상당히 많은 옵션이 나날이 추가되고 있습니다. 사실 도움말이 부실하기 때문에 뭘 봐도 크게 도움이 되지는 않고 경험에 의해 trial by error로 찾아야 할 겁니다. :)
--max-jobs=2 : dual core에서 2개의 thread를 사용해 작업하는 옵션. 지정하지 않으면 프로세서의 갯수로 된다고 하나, 지정하지 않으면 single core로 작업하게 됩니다. 이 옵션을 사용하지 않으면 변환 시간이 1.7배 이상 걸립니다. 물론 quad core에서는 4로 지정해주면 좀 더 빠르게 작업하겠지만 quad core에서 mkgmap을 실행해 본 적이 없어 모르겠군요.
--mapname="40000000" : 생성할 지도의 이름을 지정합니다. 입력 파일의 순서에 따라 mapname으로 지정된 이름이 하나씩 증가하면서 할당됩니다. 단, img 파일은 무시되고 다음 번호로 건너뜁니다.
--description="KOTM v3.1" --series-name="KOTM v3.1" : 지도의 이름을 지정합니다. mapname은 생성되는 .img의 이름을 지정하는 것이고, --description은 mapset의 이름을 지정하는 것입니다.
--family-id=455 --product-id=1 : mapset의 고유 아이디를 지정합니다.
--country-name="South Korea" --country-abbr="ROK" --region-name="South Korea" --region-abbr="ROK" : 지역 명을 설정합니다.
--overview-mapname="49000000" : tdb 파일을 만들 때 사용할 overview(preview) 파일의 이름을 지정합니다. mkgmap으로 tdbfile을 만들지 않으므로 의미가 없으나 지정하지 않으면 자체적으로 생성해 버립니다.
--remove-short-arcs :선회로의 point 수가 매우 적을 때 경고를 출력하는데 그 경고 메시지를 없애줍니다. 거의 반드시 라고 해도 좋을 정도로 꼭 지정해야 '심각한 에러'라고 출력되는 좀 귀찮은 메시지를 안 볼 수 있습니다. 실제로 심각한 에러가 아닙니다.
--ignore-osm-bounds : osm에서 지정한 영역 경계를 무시합니다. 어차피 한국만 다운받아 변환하는 것이라 의미 없는 옵션이고, 지정하면 바운더리 검사를 안 하므로 변환 속도가 아주 약간 빨라집니다.
--ignore-turn-restrictions : route 정보를 입력할 때 교차로에서 회전 정보를 무시합니다. 현재 osm 지도에는 route 정보가 전혀 없기 때문에 무시합니다.
--add-pois-to-areas : 영역(polygon)에 이름이 지정되어 있으면 poi로 간주해 처리합니다. 따라서 polygon poi의 검색이 가능해집니다. 그런데 mkgmap의 버그인지 이게 잘 안되네요.
--no-poi-address : OSM의 주소 태그를 사용할지 말지를 결정합니다. osm 자료에 원래 주소 정보가 없으므로(한국으로 치면 지번 정보) 굳이 지정하지 않습니다.
--road-name-pois : 도로명을 검색 가능하게 지정합니다.
--make-poi-index : 개발자에 따르면 별 쓸모없는 옵션이라는데, 혹시라도 poi를 인덱싱하면 poi 검색 속도가 좀 빨라질까 해서 넣습니다.
--transparent : .img 파일을 투명하게 만들어 줍니다. 이 옵션과 --draw-priority 옵션은 각각의 *.osm 마다 지정해 줄 수 있습니다. transparent는 그런데 mapset 단위로만 작동합니다. mkgmap은 img의 transparent 속성을 세팅만 해주고 랜더러(garmin gps나 mapsource 등의 프로그램)이 이 옵션을 참조하여 지도를 그린다는 뜻입니다.
--code-page="1252" : 영문 파일을 만들 때 인코딩 코드 페이지를 지정합니다.
--lower-case : POI 명칭에 소문자를 사용합니다. 대부분의 Garmin GPS 디바이스는 소문자를 표시하지 못하기 때문에 이 옵션을 지정하여 영문 GPS용 img 파일을 만들면 POI 이름이 깨져서 나옵니다. 단, 한글 장치나 Garmin Mobile XT에 사용할 때는 아무 문제 없습니다.
--code-page="949" : 한글 파일을 만들 때 인코딩 코드 페이지를 지정합니다.
--name-tag-list="name:en" : osm의 name:en 태그의 영문 이름을 poi의 명칭으로 사용합니다. 영문만 출력할 수 있는 gps에서 사용할 때 지정합니다. --code-page="1252"와 함께 사용합니다.
--name-tag-list="name" : osm의 name 태그의 한글 또는 영문 이름을 poi의 명칭으로 사용합니다(default). 한글을 출력할 수 있는 gps에서 사용할 때 지정합니다. --code-page="949"와 함께 사용합니다.