GPS/Garmin Oregon2011. 10. 23. 09:20


일본쪽 site를 검색하다 발견한 내용입니다.

자세한 것은 원문(http://biciliata.appspot.com/ymapjnx.htm)을 참조하시기 바라며 간단하게 설명하겠습니다.
(번역 해놓았으나 공개하기는 거시기 하군요.)

위의 사이트에서는 일본의 국토지리원에서 제공하는 電子国土Yahoo!地図 을 이용하여 가민 수신기에서 사용할 수 있는 JNX 파일을 만들어주는,  Python 언어로 제작한 프로그램과 설명을 제공하고 있습니다만, 일본 야후 맵은 MOBAC과 MOBAT을 이용해서도 얻을 수 있으므로 생략하고, 일본국토지리원 자료를 이용하여 JNX 파일을 만드는 방법에 관해서만 간단하게 설명합니다. 일본여행이나 등산을 위해 지형도(특히 등고선지도)가 필요한 분들은 참조하시기 바랍니다.

1. 필요한 소프트웨어 다운로드.
1) Python 2.7.2 Windows Installer  http://www.python.org/download/
2) Python Imaging Library(PIL) 1.1.7 for Python 2.7  http://www.pythonware.com/products/pil/
3) gsijnx02.zip (26KB) version 0.2 (2011-08-28)
    이 프로그램의 개발자도 무료이지만 후원은 받는답니다. 후원하실 분은 원문읽어보시고 설명되어 있는 방법에 따라 하시기 바랍니다.

2. 소프트웨어 설치
다운 받은 1) 과 2)를 설치경로를 기본값(C:\Python27)으로 설치합니다.

3. JNX 파일 만들기
다운로드한 3)의 압축파일을 적당한 폴더에 압축해제합니다.

gpl.txt
gsi_config.txt
gsijnx.py
gsi_start.bat

압축해제한 폴더에 보면 위의 4개 파일이 있습니다
위의 파일들 중에 gsi_config.txt 를 메모장으로 열어보면 아래의 내용입니다.

# -*- coding: utf-8 -*-

# GPXファイル
gpxfile = None
#gpxfile = "tokyo.gpx"
aroundroute = {1920:1, 240:1, 30:1} # km

# GPXファイルの開始点と終了点を接続して閉じた領域内を指定する場合
#polylinearea = False
polylinearea = True

# GPXファイル が有効なら緯度経度の入力は不要
# 緯度経度 その1
latlon1 = (36.0367116666667, 137.421146111111)

# 緯度経度 その2

latlon2 = (36.8453886111111, 137.932010277778)

# 使用する拡大レベルを最大5個まで
# [7.5, 15, 30, 60, 120, 240, 480, 960, 1920, 3840, 30720]
scalelist = (30,)

# 地図の切り替えレベル

# GarminDisplayScale = ["800km", "500km", "300km", "200km", "120km", "80km", "50km", "30km", "20km", "12km", "8km", "5km", "3km", "2km", "1.2km", "800m", "500m", "300m", "200m", "120m", "80m", "50m", "30m", "20m", "12m", "8m", "5m"]
switchlevel = {1920:"800m", 240:"300m", 30:"200m"}

# 非表示レベル

#displaynone = (17, 19)
displaynone = ()

# 出力ファイル名

filename = "gsi_alps.jnx"


위내용을 우리말로 번역했습니다.

# -*- coding: utf-8 -*-

# GPX File로 범위를 지정할 지의 여부
gpxfile = None 혹은 gpxfile = "Thushima.gpx"
aroundroute = {1920:1, 240:1, 30:1} # km

# GPX File의 시작점과 끝점을 연결한 영역內 범위의 지도를 다운받을 경우 True
polylinearea = False 혹은 polylinearea = True

# GPX File을 지정한 경우에는 위경도 입력은 필요없음
# 위경도 1(左下, DD.dddd 형식으로 입력)
latlon1 = (36.0367116666667, 137.421146111111)

# 위경도 2(右上, DD.dddd 형식으로 입력)
latlon2 = (36.8453886111111, 137.932010277778)

# 사용할 확대 Level을 최대 5개까지 지정
# [7.5, 15, 30, 60, 120, 240, 480, 960, 1920, 3840, 30720]
scalelist = (30, 120, 480) 혹은 scalelist = (30,)
여러개의 Level을 다운받을 경우     1개 Level만을 다운받을 경우에는 다운받을 Level 과 , 를 입력

# 지도의 전환 Level
# GarminDisplayScale = ["800km", "500km", "300km", "200km", "120km", "80km", "50km", "30km", "20km", "12km", "8km", "5km", "3km", "2km", "1.2km", "800m", "500m", "300m", "200m", "120m", "80m", "50m", "30m", "20m", "12m", "8m", "5m"]
switchlevel = {1920:"800m", 240:"300m", 30:"200m"}

# 표시하지않을 Level
displaynone = (17, 19) 혹은 displaynone = ()

# 출력될 JNX 파일 이름을 지정
filename = "GSI_Thushima.jnx" 

내용중에 #으로 시작하는 부분은 프로그램의 실행에 영향을 미치지 않는 Comment(주석) 입니다.
주석을 읽어보면 알 수 있습니다만, 지도를 작성할 범위를 GPX 파일이나 위경도로 지정해 줄 수 있습니다.

위의 내용중에서 gpxfile = 부분과 latlon1 =latlon2 = 부분이 지도의 범위를 지정해주는 곳입니다.
gpxfile = 에서 GPX 파일로 다운받을 범위를 지정해주면 아래의 latlong1 = 와  latlong2 = 에 입력한 위경도는 무시됩니다.

GPX 파일로 범위를 지정해주고자한다면, 아래와 같이 GPX파일을 지정해주면 되는데,
polylinearea = 부분을 True로 설정해야 GPX 파일의 내부 범위 전체를 다운받게 됩니다.

gpxfile = "Thushima.gpx" 



GPX 파일은 구글어스나 기타의 프로그램에서 다운받을 지도 범위의 둘레를 루트로 만들고 GPX로 저장하여 같은 폴더에 넣어주면 됩니다.

위경도로 범위를 지정해주고자 한다면 아래와 같이 위 경도를 지정해 주면 됩니다.
gpxfile = None

latlon1 = (36.0367116666667, 137.421146111111)
latlon2 = (36.8453886111111, 137.932010277778)

위 내용을 참고하여 gsi_config.txt 파일을 편집하고 저장한 후,
gsi_start.bat 파일을 더블클릭하여 실행하면 cmd 창이 열리면서 지도를 다운받고 JNX 파일까지 자동으로 만들어 줍니다.

참고로 Network 사정등으로 실행중에 프로그램이 중단된 것으로 판단되면 cmd창을 닫고, gsi_start.bat 파일을 재실행시키면 다운받지 못한 나머지 파일부터 다시 다운받게 됩니다.

펌웨어 패치방법은 이전의 글에서 설명하였으므로 생략하지만, 위의 방법으로 만든 JNX 파일도 펌웨어를 패치한 Garmin사의 해당되는 기기에서만 볼 수 있으며 BaseCamp에서 볼려면  JNXFIXER 프로그램을 거쳐야 합니다. 

    

제생각에는 Python 언어로 만든 위 프로그램은
지도를 다운받는 부분
다운 받은 지도를 JNX 파일로 Calibration하고 작성하는 부분
등으로 구성되어 있을 것 같은 데,

Daum 이나 Naver 지도 혹은 국토지리원에서 제공하고 있는 2만5천도를 GPS 프로그램에서 사용할 수 있는 파일로 작성하는 방법을 위 프로그램에서 힌트를 얻을 수도 있을 것같은 생각이 듭니다만, 저는 VBA를 그것도 도움말 찾아가며 겨우 사용하는 수준이라 불가능하고, 이부분에 조예가 깊으신 능력자분들께서 한번 검토해 주시면 어떨까요.

Python 언어에 관해서는 이미 능통해 계시는지도 모르겠습니만,
jump to python 의 저자이신 박응용님의 강좌를 http://wikidocs.net/mybook/read/page?pageid=1 사이트에서 읽으실 수 있습니다.

또, 일전에 생태자연도의 일괄 다운로드 방법을 알려드리려다가, 다운로드엔진을 이용한 다운로드는 적절치 못할지도 모른다는 조언을 듣고  그만뒀는데, 일본에서는 이런식의 다운로드가 허용되는 지 모르겠군요.

Posted by Amisan