俺のやりかた:eTrexで日本語POI

リトルサウス

2016年07月03日 09:57


KMZ形式に比べると圧倒的に制限のないJNX形式の地図が使えるようになったことで、これからは広範囲の地図を持ち歩くことが出来ると思ったら山情報&山小屋情報をWAYポイントとして登録したいと思った・・最初、、、

しかし大量のWAYポイントを登録するも途中までしか認識されず、調べてみたらWAYポイントは上限2000件のガッカリ仕様とのこと、、、

地点登録ならWAYポイントに比べて仕込みが少し手間なもののPOIだと仕様上の登録数の制限はないようなのでPOIを作成し、併せてPOIの日本語表示とついでにeTrex30を日本語表示してみた。

当たり前だが日本語表示が出来ると日本語入力が出来るは別の話。英語版のeTrex30で日本語入力は出来ない

※ 記事が長く文字も多いので、やろうと思ってない人には退屈な記事です

◆ はじめに

英語版Garmin eTrex30に必要な仕込み、、、(前回使い回し)



必要な仕込み
jnx形式マップの利用
ハンディGPSの日本語表示
POIの日本語表示


パッチ済みファームウェアの適用





日本語フォントファイルの設置





etrexの日本語ローカライズファイルの設置






POI作成するにあたり日本語表示が不要なら特に仕込みなしで大丈夫だが、日本語表示出来た方が直感的に場所を判断出来たり全体の文字数が短く出来たりと都合がいいのでPOIの日本語表示と、仕込みのついでにeTrex30の日本語表示もこの際やってしまう。

ちなみに今回の作業環境もWindows10 Pro




◆ 仕込み編 其の1

日本語フォントファイルの設置
日本語フォントを置いてeTrex30を日本語表示出来る環境にする。

説明ベタなので簡単なフローを書いてみた、、、



ここで使うツール

↓フロー2で使うUniteTTC
ttp://yozvox.web.fc2.com/556E697465545443.html

↓フロー3で使うxor
ttp://aluigi.altervista.org/mytoolz/xor.zip



1, フォントファイル入手
フォントファイルはeTrex30の/Garmin/Extra/以下にあって、元々の.ttf形式のファイルを0x76でxorされているだけというのは公然の事実。

試しに実機のフォントファイル006-D0952-05.bin, 006-D0952-06.binをxorして拡張子を.ttfとしてプレビューするとフォント名はSakkal Majalla Unicodeで、字体から それぞれBOLDとレギュラーだということが確認できた。

↓以下MSサイトでフォントの詳細を見るとコードページに日本語はない
ttps://www.microsoft.com/typography/fonts/family.aspx?FID=375

eTrex30で日本語表示出来るようにするために日本語のコードページを含むTrueType のフォントを入手する。フリーのフォントファイルも検索すれば容易に見つかるが、自分のパソコンに入ってるフォントで見やすそうな HG創英角ゴシックUB(HGRSGU.TTC)で試してみた。


2, .TTC > .TTF 展開
eTrex30で使用できるフォントはTTF形式である必要があるらしいが、今回のフォントファイルは.ttf形式を複数含んだ.ttc形式のため、ここから.ttfファイルを取り出す必要がある。

取り出しに使うツールはUniteTTC

使い方は UniteTTC で、具体的には

UniteTTC HGRSGU.TTC

で HGRSGU001.TTF~HGRSGU003.TTF が取り出せた。

.ttfのファイル名は便宜上機械的につけられたものでこれだけではフォントの中身はわからないが、プレビューで好みのものを選べば問題なし。今回は出来るだけ沢山表示出来るかと思って半角倍角共にプロポーショナルのHGP創英角ゴシックUBをチョイス(プレビュー時に名前が判明)。


3, xor 0x76
フォントファイル形式への変換に使うツールは xor

使い方は xor 0x76 で、具体的には
xor HGRSGU002.TTF 006-D0952-06.bin 0x76

変換後のファイル名は実機のそれと同じにするが、006-D0952-05.bin, 006-D0952-06.bin、これらがeTrex30の中でどのように使い分けられるのかがわからないためどっちにすればいいのか迷ったが、他の人のブログなどから006-D0952-06.binにしてみた。


4, フォントファイルコピー
後はeTrex30にコピーするだけ。/Garmin/Extra/以下の006-D0952-06.binをバックアップの上、置き換える。





◆ 仕込み編 其の2

日本語ローカライズファイルの設置

eTrex30の表示の日本語化の話。実機での表示確認には仕込み編 其の1が出来ている必要がある。

全然ややこしくないが、この記事の流れ的にフロー、、、




1, ローカライズファイルJapanese.gtt入手
eTrex30の画面表示は実機の/Garmin/Text/以下の各言語ごとに置かれたxxxx.gttファイルの記述に従って表示される。中身を見るとxml形式のファイルは<tag>と<txt>のペアで、キーとなる<tag>とその言語での表示が<txt>に記載されていて、頑張れば一から作れそうな気もするが、日本の代理店のeTrex20, 30用ソフトウェアアップデートファイルに同様のファイル(Japanese.gtt)が含まれているようなので、これを参考にさせてもらう、、、


2, ローカライズファイル編集
前項のJapanese.gttを参考にして、気に入らない訳や英語表記のままでよかったところなどを気にいるように修正する。

ただし、元のJapanese.gttは日本語版用のローカライズファイルのため、英語版のデバイスの場合は変更が必要なようだ。

<desc>Japanese</desc>
desc タグのところは倍角表記の「日本語」を半角の「Japanese」に変更

<pnum>006-D3743-02</pnum>
eTrex30に元々入っていた全ての.gttファイルのpnumタグは最後の番号区切りを除いて同じだった(006-D3565-xxx)が元々のままでも表示された。ここは変更不要か、、、

<ver>2.51</ver>
バージョンは動きからするとファームウェアと同じギミックが仕込まれているように思う。オリジナルの2.50のままでは表示されなかったがリビジョンを上げると表示された。内容を変更したような場合は都度リビジョンを前のものから上げないと認識されないだろう。

ただし、個々のGPSデバイスでフォントファイルの既設バージョンが異なるだろうからバージョンをいくつにすれば表示されるかは一概には言えない

尚、eTrexの日本語版と英語版のバージョン差で足りないメニューは↓の方が公開されているものをダウンロードさせて頂いて追加した。
ttp://www.biwa.ne.jp/~takumi-k/


3, ローカライズファイルコピー
後はeTrex30にコピーするだけ。/Garmin/Text/以下にJapanese.gttを置いて起動。Setup > System > Language にJapanese が表示されるようになるのでこれを選択する。

※ 自分の所有する個体だけかもしれないが、表示言語を Japanese に切替後、eTrex30の操作がほとんど利かない程レスポンスが緩慢になり画面表示もアイコンだけになることがある。こうなってしまった場合、eTrex30の電源をOff > Onで日本語表示されることもあるが英語表示で起動することもあった。このような場合でも再度言語をJapaneseに設定すると最終的に日本語表示出来ないことはなかったが、こういったこともオウンリスクと考えられなければやるべきではないだろう(自分の場合は日本語表示のフォントが小さいこともあって英語表示のまま使うつもりなので問題ないが)


■ eTrex30の言語が日本語の時の表示


■ eTrex30の言語が英語の時の表示


日本語フォントは見やすいものを選んだつもりだったが並べてみると英語表示の方が圧倒的に見やすいと思う。フォントの大きさは仕込みの工夫でなんとかなるのだろうか、、、





◆ 日本語POIの作成

説明ベタなのでこちらもフローを書いてみた(これまでより少し複雑か)、、、



ここで使うツール

↓フロー3, 6で使うutfa.exe, jpngpi.exe(ダウンロードファイルはPOI.zip)
ttp://www.biwa.ne.jp/~takumi-k/

↓フロー5で使うPOILoader.exe
ttp://www.garmin.com/us/maps/poiloader



1, POI元ネタ入手・編集
実はここが一番面倒だったりするので、最後にAppendixとして記述する。

POI元ネタファイルの概要だけ書いておくとPOI用CSVデータのサンプル。

3列目が「名前/NAMAE」形式なのはeTrex30のスペルサーチでは名前列を検索するようで、英数字しか入力できない英語版で検索出来るようにするため。サンプルデータが山データでないのはコメント列が入ったものを載せたかったので、、、

意外と「UTF-8エンコードで保管」で詰まるかもしれないが、エンコードを変えられる機能はテキストエディタを探せば容易に見つかると思う。

ここでのPOI元ネタCSVファイル名はMOUNTAINS.csvとする。


2, カテゴリ分けファイル作成
最終的に出来上がったPOIファイルはeTrex30の Where to? > Extras に表示され、POIファイルが複数ある場合にカテゴリとして表示される情報を作成する。POIファイルが一つの時は表示されない。

作り方はカテゴリを記載したテキストファイルの拡張子を.tx1として元ネタCSVファイルと同じファイル名、UTF-8エンコードで保存。ここではMOUNTAINS.tx1

カテゴリファイルの中身



3, 倍角列情報退避
今回利用したPOI編集ツールutfa.exe, jpngpi.exeは、編集の過程で作成される関連ファイルを覗いてみるとPOI元ネタファイルから倍角文字の含まれる列を別ファイルに退避した上で元の文字列のところを半角文字で置き換えておき、このファイルをソースにPOIファイル(.gpi)を作成して後から退避しておいた倍角情報を書き戻すようだ。

ここでは元のPOI元ネタファイルから倍角文字の含まれる文字を退避する。

utfa.exe, jpngpi.exeのあるディレクトリにPOI元ネタファイル(MOUNTAINS.csv)とこのカテゴリのファイル(MOUNTAINS.tx1)を置いておく。
※ 2つのファイルの拡張子より前部分が同一なことが必須。
※ この工程の出力ファイルにMOUNTAINS.tx1の情報は含まれないが、ファイルがないとutfa.exe実行時にエラーとなる。これは、後工程のjpngpi.exeでカテゴリファイル(MOUNTAINS.tx1)がないとエラーとなるため、必要なリソースの存在チェックをここで行うのだろう

使い方はコマンドプロンプトでこのディレクトリを開き、 utfa で、具体的には

utfa MOUNTAINS

コマンド実行後、倍角文字を含む列情報が入った.tx2, .tx3 (ここではMOUNTAINS.tx2, MOUNTAINS.tx3)および元ネタファイルの倍角列を半角文字に置き換えた123456789.csvのような名前のファイル出力される。


4, アイコンファイル作成
POI作成時、ソースファイル(.csv)と同じディレクトリに同じ名前のアイコンファイル(.bmp)を置いておくとそのアイコンをPOIの位置に表示させることが出来る(アイコン指定がない場合は丸印が表示)。

アイコンファイルはBMP形式・8bitカラー(256色) 24px X 24px以内で作成する。また RGB 255, 0, 255 のマゼンダは透過色とみなされる。

アイコンにこだわりはないがせっかくなので試しに作ってみた。サイズはeTrex30で実際の見え方を試してみて16px X 16px とした。

eTrex30での表示イメージ








マウスオンでアイコン元画像表示(うーんカッコ悪いなこれ、、)



5, POIファイル作成
手順3で出力したPOI元ネタファイル(倍角列置き換え版)からPOIファイルを作成する。

POI作成に使うPOILoader.exeは入力ソースにフォルダを指定し、指定したディレクトリ以下のPOIソースを一括処理する仕様のようなので、意図しないPOIファイルとなることを避けるためPOI作成専用のディレクトリで作業するのがよいだろう。

尚、POIファイルにカスタムアイコンを含める場合は手順4で作成したアイコンファイルをPOI元ネタファイルと同じディレクトリに置く。

手順3で出力したPOI元ネタファイルは123456789.csvだが、ファイル名はなんでもよい。ただしカスタムアイコンで表示させる場合はこれらの拡張子以外のファイル名部分を同一にしないとペアとみなされない。

POILoader.exe を起動するとPOI作成ウィザードが始まる。使い方は上記の概念が理解できていれば特に難しいところはないが、後で倍角列の情報を復元する続きの処理があるため、出力先を指定する「保存オプション」の指定を「コンピュータ」とするくらいか。

※ POILoader.exe画面上にある「ヘルプ」は良く出来ているので、これを見ればアプリの機能や操作の他POI元ネタファイルのフォーマット等についてもわからないことはないだろう

ウィザードを最後まで進むと、ファイルのPOIファイルの出力場所に指定したフォルダに.gpi(この場合123456789.gpi)が出力される。

※ POILoaderの機能としては対象ディレクトリ以下に複数のPOIソースファイルを置いてカテゴリの中に更に階層を設ける等も出来るようだがここでは触れない


6, 倍角列情報復元
ここでは項番5で作成したPOIファイルに項番3で退避しておいた倍角列情報を復元して日本語情報を埋め込む。

最初に項番5の出力ファイルを項番3の倍角列情報退避を行ったフォルダにコピーして、ファイル名123456789.gpiの拡張子以外を元のファイル名にリネームする(この場合MOUNTAINS.gpi)。

使い方はコマンドプロンプトでこのディレクトリを開き、jpngpi で、具体的には

jpngpi MOUNTAINS

コマンド実行後倍角文字を含む列情報が入ったPOIファイルが同じファイル名で出力され、元のファイルは.gpi_orgとして別名保存される。


7, POIファイルコピー
後はこれをeTrex30の/Garmin/POI ディレクトリにコピーして完了。GPSユニットを起動して Where to? > Extras で作成したPOIが表示される。この時POIファイルが複数あると項番2で作成した「カテゴリ」が表示される。
※ POIファイルはMicroSDに /Garmin/POI/ ディレクトリを作り、そこに置いても認識する

■ eTrex30の言語が日本語の時の表示


■ eTrex30の言語が英語の時の表示






◆ [ Appendix ] POI元ネタファイルの作成

ネタ集め
山と山小屋のPOIを作ろうと思った時、それらの情報源として最初に考えたのはカシミールの「地名編集」で表示される情報をウェイポイント化し、エクスポートするというものだった。

POIデータはこれをソースとして作成が出来ないわけでもないが、ウェイポイント化では地点の読みがな情報がなくなってしまうようで、検索用に読みがなを起こすためエクセルのphonetic関数を使って生成してみたが、機械的に生成した読みは精度が低く、修正の多さに諦めた。


・・と一旦カシミールからの転用を諦めかけたが、「地名の編集」で対象レコードをコピーバッファに入れて貼り付ければ、読み情報共取り出せることを発見した。


コピーして、、、


貼り付け, データ > 区切り位置(カンマ指定)した状態


POI元ネタ情報の編集
取り出したデータは読みがなを一から作成しなくていいが、自分が見ても間違いがわかる箇所が存在したため、気づいたものは直した。

緯度経度は2種類ある。B,C 列はDMS形式、J, K列はDEGREE形式。POI元ネタにはDEGREE形式のJ, K列の方を使用する。

POI元ネタファイルのフォーマットは「経度(DEG), 緯度(DEG), 名前, コメント」を順に並べたカンマ区切り文字列。eTrex30のPOI検索対象がここでいう名前列の情報のようなので、名前のところに半角アルファベットでローマ字の読みを加えて「経度(DEG), 緯度(DEG), 名前/NAMAE, コメント」とすることにした。

とは言うものの「よみ」からローマ字の「YOMI」を生成するコマンドはエクセルにないようで、地点数は山と峠で20000以上、山小屋で600件以上もあるのでいちいち手でやってられず、インターネットで公開されている変換の関数も見つけたが、自分好みのYOMIや読みがなに付いている(1△)(2△)(3△)(4△)のような不要文字をYOMIから省くなどしたかったので拙いVBA関数を作成した。

こんなものでも使いたい人がいるのかも・・と思って よみ > YOMI 変換の関数(basモジュール)を落とせるようにしようと思ったが、ここのブログには置けないようだ、、、


よみからYOMI取得



コメント欄の内容はPOIの詳細表示で表示される。尚、コメント内に¥nを入れるとその場所で改行を入れることが出来る。



上記で作ったPOIをeTrex30で表示させたところ。
※ 詳細情報のソースになる「コメント」列の情報はカシミールの元データ「地名の編集」には入ってないので情報集めからしなくてはならないが、、、


POI元ネタ情報の作成
POI元ネタファイルとしては、これらを繋いでカンマ区切りの文字列を作り、テキストエディタにでも貼ってUTF-8エンコードでPOI元ネタファイル名(.csv )で保存する。





関連記事
俺のやりかた・・シリーズ:eTrexでJNX



あなたにおススメの記事
関連記事