trk2zpo

はじめに

Copyright(C)2002 ZENRIN CO.,LTD

trk2zpo.exeは、カシミール3Dが生成するTRK/WPTファイルを、ゼンリン電子地図帳Z[zii](以下Zと略す)で読みこみ可能なZPOファイルに変換するプログラムです。 TRK/WPTファイルは、様々な座標系のデータを出力できますが、trk2zpo.exeが読み込めるのは、 測位系がTOKYOのDEG(ddd.ddddd)形式のデータだけです。

入力するTRK/WPTファイルには複数のトラックやポイントを含められます。 その場合、トラックごとに図形は分割されます。

インストール

trk2zpo-test4.lzhをダウンロードし、LZHファイルを解凍して、trk2zpo.exeを取り出します。 インストーラはありませんので、これを適当なディレクトリ(フォルダ)にコピーします。 たとえば、"Program Files"の下に"zpoconv"というディレクトリを作って、その下に置きます。

アンインストール

exeファイルをゴミ箱にいれればOKです。レジストリ等の書き換えは行ってません。

使い方(TRKファイルのドロップによるコンバート)

trk2zpo.exeはコマンドラインのプログラムです。 ウインドウ表示などは一切ありません。 コマンドラインから実行しても良いのですが、いちばん簡単なのは、TRKファイルをドロップする方法です。

  1. デスクトップにtrk2zpo.exeのショートカットを作ります。
  2. カシミールのGPSエディタを起動し、出力したいトラックを選択します。 複数のトラックを同時に指定してもOKです。
  3. [ファイル]→[GPSデータを書き出す]を選びます。
  4. ファイル名を入力し、ファイルの種類は[TRKファイル]を選択します。
  5. 経度緯度形式は[DEG(ddd.ddddd)]を選び、保存するデータの測位系は[TOKYO]を選びます。
  6. [保存]します。
  7. できたTRKファイルを、trk2zpo.exeのショートカットにドロップします。 TRKファイルと同じ場所にZPOファイルができます。
  8. ゼンリン電子地図帳Zを起動します。
  9. [編集]ボタンをクリックします。
  10. [ファイル名:]のすぐ右にあるボタンをクリックして、[新規作成]で、新しいファイルを 作ります。名前はご自由に。 (これはluidが偶然重なって古い図形を上書き消去することのないようにする手順です)
  11. ZPOファイルをゼンリン地図帳Zにドロップします。

コマンドラインでの使い方

DOSウインドウなどから使いたい場合は、インストールしたディレクトリにパスを通します。

trk2zpo trkファイル [zpoファイル]

zpoファイルの指定を省略すると、trkファイルの拡張子を.ZPOに変更したものを使います。

設定ファイル trk2zpo.cfg

trk2zpo.exeと同じディレクトリのtrk2zpo.cfgというファイルで、trk2zpo.exeの動作を調整できます。 trk2zpo.cfgはテキストファイルなので、ワードパッドやテキストエディターを使って書き変えます。 基本的な書式は、1行ごとに「キーワード=値」を書きます。 現在、設定できるキーワードは以下の通りです。

line_color=0xFF0000
トラックの線の色を設定します。色は24bitの整数で指定し、8ビット毎に上位から、赤、緑、青の明るさをになります。 たとえば、0xFFFFFFは白0x000000は黒、0x00FF00は緑になります。

line_width=1
トラックの線の太さを1〜8までの間で指定します。

luid=1
luid=1なら、luidを出力します。luidについては後述を参照してください。 特に問題が無い限り、luid=1にはしません。

line_style=0
トラックの線の種類を指定します。0は実線で、1は破線になります。 破線を指定した時は、line_widthは無視されます。

line_arrow=1
1,2,3,4の時、トラックを矢印で描画します。1,2,3,4はそれぞれ、矢印の形が違います。

track_connect = 1
1にすると、トラックとトラックの間を破線で結びます。

icon_file=default.ico
WPTの時に読み込むアイコンのファイル名を指定します。

Q&A

ZPOファイルを読み込んだが、なにも表示されない
trk2zpo.cfgに、"LUID=1"という行を追加してみてください。

ZPOファイルを読み込んだら、Zが応答しなくなってしまった
Zは大きな(例えば数千ポイントの)データを読み込み処理をおこなうと、かなり時間がかかります。 しばらく待ってみると、処理が終わるかもしれません。 最初は小さなファイルで試してみることをお勧めします。

ZPOファイルを読み込んだが、位置が400mほどずれている
たぶんTRKファイルの測位系がWGSになっています。TOKYOで保存してください。

ZPOファイルを読み込んだが、位置がとんでもなくずれている
TRKの保存の際、出力形式をDEG(ddd.ddddd)にしてください。

図形データの色や太さなどを変更したい
線の色と太さはtrk2zpo.cfgで変更可能です。その他は現在は変更できません。Zで読み込んだ後に、図形編集機能を使って変更してください。

luid(Zi図形ID)について

Zでは、図形ごとに、32bitデータ4つのIDが振られています。 CSVデータでは"Zi図形ID"、ZPOでは"luid"として書かれていますが、ここではluidと呼びます。 luidはファイルにも保存され、これが一致するものは、同じオブジェクトと見なされます。 これを理解するには、以下の実験をしてみるとよいでしょう。

実験1

  1. Zを起動します
  2. [編集]ボタンを押します
  3. 適当な位置にアイコンを一つ設置します
  4. そのアイコンをZPOファイルに保存します
  5. アイコンを少し移動させます
  6. 4で保存したZPOファイルを読み込みます
  7. アイコンは3の位置に戻ります

実験2

  1. (-5までは同じ)
  2. アイコンを削除します
  3. さっきとは別の位置にアイコンを作成します
  4. 4で保存したZPOファイルを読み込みます
  5. アイコンは2つになります。

luid衝突問題

実験から、ZPOファイルの読み込み時は、同じluidを持つ図形がすでに存在する場合は、 図形が上書きされてしまうことがわかりました。 これを「luid衝突問題」と呼びます。

ここで疑問に思うのは、「誰かが作った図形のluidと自分の図形のluidがたまたま同じだったら」 どうなるだろう、ということです。 恐らくluidの生成時に、シリアル番号を見るなどで、luidが重ならない工夫をしていると 思われますが、仕様がはっきりしないのでちょっと不安です。 また、コンバータなどでZPOファイルを生成する場合は、luidの衝突は大きな問題になります。 ZPOファイルの読み込み時には、新規のluidを生成してくれれば楽です。

実験の結果、Z5では、luidを持たないZPOファイルを読み込むと、新規のluidを生成してくれる ことがわかりました。trk2zpo.exeは、通常、luidを生成しません。 trk2zpo.exeで作られたZPOファイルは、例えば3回読み込めば、3つの図形が読み込まれます。 コンバータとしては、これが一番安全です。

一方、Z2はluidを持たないZPOファイルは読み込みが失敗します。 trk2zpo.cfgに「luid=1」という行を書くと、trk2zpo.exeはluid付きのZPOファイルを生成します。 しかし、luidが衝突するとデータが消えてしまうので、大変です。 trk2zpo.exeは次の材料でluidを作っています。

これらのすべてが一致しない限り、同じluidが発生することはありませんから、trk2zpoが同じluidを 発生する可能性は極めて低いと思います。 一方、Zが作ったluidとの衝突も、128bitの一致ですから、可能性は極めて低いと思います。

が、用心したいという人は、ZPOの読み込み専用に、専用の「図形ファイル」を作ることをお勧めします。 これが、使い方の10番の作業です。

luidとZのバージョンの対応表

古いバージョンのZではluidのないZPOファイルを読んでくれません。 簡単な対応表を書きます。 (情報を募集しています)
Z[zi:]Z[zi:]IIZ[zi:]IIIZ[zi:]IVZ[zi:]5
luidなし ×
luidあり
◯...OK / △...luid衝突問題あり / ×...使えない

やりたいこと

たぶんやらないこと

履歴

無保証です

アーカイブに含まれるファイルは無保証です。 特に「luid衝突問題」については、あらかじめ理解して使って下さい。 プログラムの利用やソースの改変や一部の利用はご自由にどうぞ。 でも、くどいようですが、その場合も無保証です。

リンク

y_omori@yc5.so-net.ne.jp