
GPXファイルを ゴースト
として、マップ上に表示します。メイン画面のデータを
ベース
と呼びます。ゴーストとベースとの比較データはゴーストHUDに表示できます。
ゴーストはGPXの愉しみ方の1つで、データを詳細に分析するなどの本気モード用ではありません。
ゴーストとは
ゴースト用のGPXファイルを読み込み、ベースを基準にゴーストデータを生成します。ゴーストは、ベースの現在位置に対応するゴースト側の位置を計算して表示します。
ゴーストGPXに日時データがない場合は、ゴーストを生成できません。
*** 注意 ***
移動距離、移動時間は、それぞれのGPXデータから算出します。 同じルートであってもGPSのゆらぎ/ふらつき等で移動距離が異なる場合があります。
ゴーストの生成ロジック
ゴーストは、ベースに対して、 同じ経過時間でどこまで移動したか を、ゴーストGPXから計算し、想定位置を表示します。
ベースがスタートから t 秒後にいる
↓
ゴースト側の t 秒後の位置を求める
↓
その位置にゴーストカーソルを表示する
マルチゴースト
複数のGPXファイルをゴーストとして読み込み、同時に表示します。マルチゴーストは
Ghost JSON で指定します。
Ghost
JSON
は、複数のゴーストGPXと表示設定をまとめるためのJSONファイルです。ベースは現在開いているGPXです。Ghost
JSON には、ゴーストGPXを指定します。
| 項目 | 内容 |
|---|---|
| ベース | 現在開いているGPX |
| ゴースト | Ghost JSON に指定したGPX |
| 最大数 | 9ゴースト |
| ゴースト番号 | Ghost JSON の有効なゴーストを上から順に Ghost #1,
Ghost #2, Ghost #3 のように扱います |
Ghost JSON
マルチゴーストを読み込んだ場合、画面上には最初のゴーストGPX名ではなく、Ghost JSON ファイル名が表示されます。
Ghost JSON の主な項目
| 項目 | 内容 |
|---|---|
| Settings | ゴースト共通設定 |
| Ghosts | ゴーストGPX定義の配列 |
| GpxFileName | ゴーストGPXファイル |
| CursorFolder | ゴーストカーソル画像フォルダ |
| CursorOpacity | ゴーストカーソルの不透明度 |
| ShowCursor | ゴーストカーソルの表示 |
| ShowTrack | ゴーストトラックの表示 |
| StartLine | スタートライン |
| EndLine | ゴールライン |
Ghosts
に指定した順番が、基本的なゴースト番号になります。順番を変更したい場合は、JSON内の並び順を変更してください。
Enabled=false
のゴーストは生成されません。HUD上の G1,
G2 は、有効なゴーストの表示順として扱われます。
各ゴーストには、カーソル画像フォルダ、不透明度、カーソル表示、トラック表示を個別に指定できます。
省略時の動作
| 項目 | 省略時 |
|---|---|
| Settings | 既定値を使用します |
| Ghosts.Enabled | 有効として扱います |
| CursorFolder | 未指定 |
| CursorOpacity | 128 |
| ShowCursor | OFF |
| ShowTrack | OFF |
| StartLine | 無効 |
| EndLine | 無効 |
CursorOpacity は 0 から 255
の範囲で指定します。0は完全に透明、255は完全に不透明です。
注意事項
- ゴーストGPXには日時データが必要です
- 有効なゴーストが1つもない場合、ゴーストは生成されません
- 指定したGPXファイルが存在しない場合、ゴーストは生成できません
- 10個目以降のゴーストは読み込まれません
- ゴースト番号はJSON内の順番で決まります
Enabled=falseのゴーストは番号表示の対象外になります
スタートとゴール
スタートとゴールの設定には2つの方法があります。
全データ方式
ベースデータの先頭がスタート、末尾がゴールになります。それに合わせて、不要なポイントを削除して、データを調整します。
GPXの先頭をそのまま開始点として使いたい場合は、Use Raw
Start をONにします。
ライン方式
マップ上で任意の2点を設定し、ラインを引きます。ライン上を交差した点をスタート/エンド(ゴール)地点とします。検出したスタート/エンド地点のインデックスが表示されます。
🚩でラインの1点目を設定します。クリック後に2点目を設定し、ラインが引かれます。クリアボタンでラインをクリアします。オプションの
Start Pin / End Pin が使用されます。
ラインはインデックスを決めるためのものです。ゴーストデータがクリアされてもラインは残ります。ラインをクリアしたいときはクリアボタンを押してください。
ライン表示
各ラインの背景が緑/赤の場合、ラインが引かれています。クリアボタンでクリアしてください。
Ghost JSON の StartLine / EndLine
Ghost JSON では、Settings 内に
StartLine と EndLine を指定できます。
StartLine
はスタート判定用ラインです。EndLine
はエンド判定用ラインです。
"Settings": {
"StartLine": {
"Enabled": true,
"P1": {
"Lat": 35.6810000,
"Lon": 139.7660000
},
"P2": {
"Lat": 35.6820000,
"Lon": 139.7670000
}
},
"EndLine": {
"Enabled": true,
"P1": {
"Lat": 35.6815000,
"Lon": 139.7665000
},
"P2": {
"Lat": 35.6825000,
"Lon": 139.7675000
}
}
}| 指定 | 動作 |
|---|---|
| StartLineなし / EndLineなし | 全区間を使用します |
| StartLineのみ | StartLine以降を使用します |
| EndLineのみ | EndLineまでを使用します |
| StartLineとEndLine | StartLineからEndLineまでを使用します |
| StartLineとEndLineが同一 | 1回目通過から2回目通過までを使用します |
オプション
| 項目 | 内容 | |
|---|---|---|
| Use Raw Start | ON | ゴースト元データの先頭を開始点にします |
| OFF | ライン基準で求めた開始位置を使います | |
| Interpolate Crossing | ON | ライン通過位置の補間に関する設定をONにします |
| OFF | ライン通過位置の補間に関する設定をOFFにします | |
| Highlight Ghost Range | ON | ゴースト生成対象の範囲を一覧上で強調表示します |
| OFF | 強調表示しません | |
| Show Ghost on Chart | ON | チャートにゴーストを表示します |
| OFF | チャートにゴーストを表示しません |
全データ方式でGPXの先頭をそのまま開始点にしたい場合は、Use Raw
Start = ON を使用します。
ライン方式で検出した開始位置を使う場合は、Use Raw Start = OFF
を使用します。
Interpolate Crossing
現在のバージョンでは、Interpolate Crossing はUIおよびGhost JSONの設定項目として保持されますが、ゴーストの生成結果や移動結果への影響は限定的です。
マップ表示
ゴーストのカーソルとトラックが表示されます。
Cursor用のフォルダを指定します。内容はオプションの Cursor Pin
と同じです。
| 項目 | 内容 | |
|---|---|---|
| Show Cursor | ON | ゴーストカーソルを表示します |
| OFF | ゴーストカーソルを表示しません | |
| Show Track | ON | ゴーストトラックを表示します |
| OFF | ゴーストトラックを表示しません |
表示設定
UI側の Show Cursor / Show Track は全ゴーストに影響します。Ghost
JSON の ShowCursor / ShowTrack
は各ゴーストごとの個別設定です。
UI設定とJSON設定の関係
| 表示 | 条件 |
|---|---|
| ゴーストカーソル | UIの Show Cursor がON かつ 各ゴーストの
ShowCursor=true |
| ゴーストトラック | UIの Show Track がON かつ 各ゴーストの
ShowTrack=true |
UI側のチェックは全ゴーストに影響します。
一方、CursorOpacity
は各ゴーストの個別設定です。マルチゴーストでは、ゴーストごとに異なる不透明度を指定できます。
ゴーストの操作
通常と同じく⬆️⬇️でカーソルは動きます。ベースが先にゴールした場合、メイン画面ではリストの末尾に到達し、それ以上進みませんが、マップ画面では⬇️でゴーストがゴールするまで進みます。
ゴーストHUD
ゴーストの各種情報を表示します。
| 項目 | 内容 |
|---|---|
| Top Left | 左上 |
| Bottom Left | 左下 |
| Top Right | 右上 |
| Bottom Right | 右下 |
| 項目 | 名称 | 内容 | |
|---|---|---|---|
| LATI | Latitude | 緯度 | ゴースト現在位置の緯度 |
| LONG | Longitude | 経度 | ゴースト現在位置の経度 |
| ELEV | Elevation | 標高 | ゴースト現在位置の標高 |
| SPED | Speed | 速度 | ゴースト現在位置の速度 |
| DIST | Distance | 距離 | ゴースト開始点からの距離 |
| HEAD | Heading | 方角 | ゴースト現在位置の進行方向 |
| TYPE | Data Type | データ種別 | MEAS=実点 / INTR=補間点 |
| EDIF | Elevation Difference | 標高差 | ベース標高 - ゴースト標高 |
| SDIF | Speed Difference | 速度差 | ベース速度 - ゴースト速度 |
| TDIF | Time Difference | 時間差 | 同距離でのベース/ゴーストの時間差 |
| DDIF | Distance Difference | 距離差 | ベース距離 - ゴースト距離 |
| PDIF | Position Difference | 位置差 | ベース位置とゴースト位置の直線距離 |
| DSTB | Remaining Distance Base | ベース残距離 | ベースのゴールまでの残距離 |
| DSTG | Remaining Distance Ghost | ゴースト残距離 | ゴーストのゴールまでの残距離 |
| TIMB | Remaining Time Base | ベース残時間 | ベースのゴールまでの残時間 |
| TIMG | Remaining Time Ghost | ゴースト残時間 | ゴーストのゴールまでの残時間 |
TDIF
TDIF
は、ベースとゴーストの同距離地点における時間差です。
TDIF = ゴーストが同距離へ到達した経過時間 - ベースの経過時間
TDIF
が正の場合、ゴーストの方が同距離地点への到達が遅いことを示します。つまり、ベースがゴーストより先行している状態です。
ベースがゴールした時点のTDIFが、最終的なタイム差の目安になります。
| 項目 | 基準 |
|---|---|
| ゴーストカーソル | 同じ経過時間 |
| TDIF | 同じ距離地点 |
| DDIF | 同じ経過時間での距離差 |
| PDIF | ベース位置とゴースト位置の直線距離 |
ゴーストカーソルは「同じ時間でどこにいるか」を表示し、TDIF
は「同じ距離に何秒差で到達したか」を表示します。
マルチゴーストHUD
マルチゴーストでは、HUDにゴースト番号が付きます。
TDIF G1 +12.34 s
G2 -03.21 s
G1, G2
は、有効なゴーストの表示順を示します。
マルチゴーストHUDの表示項目
マルチゴーストHUDでは、指定されたHUD項目をすべて並べるのではなく、優先順位が最も高い1項目だけをゴースト数分表示します。
マルチゴーストで TDIF
を表示したい場合は、Ghost JSON の Items に
TDIF だけを指定するのが安全です。
"Hud": {
"Position": "TopRight",
"Items": [
"TDIF"
]
}HUD項目の優先順
HUD項目の表示順は、Ghost JSON の Items
に書いた順番ではありません。内部の固定順で扱われます。
- LATI
- LONG
- ELEV
- SPED
- DIST
- HEAD
- TYPE
- EDIF
- SDIF
- TDIF
- DDIF
- PDIF
- DST
- TIM
例えば、次のように指定した場合、マルチゴーストHUDでは
TDIF ではなく SPED
が表示対象になります。
"Items": [
"TDIF",
"SPED"
]これは SPED の方が優先順が上のためです。
Ghost JSON例
1ゴースト
{
"FileType": "TurboGPX.Ghost",
"Version": 1,
"Settings": {
"UseRawStart": false,
"InterpolateCrossing": false,
"Hud": {
"Position": "TopRight",
"Items": [
"TDIF"
]
}
},
"Ghosts": [
{
"Enabled": true,
"GpxFileName": "C:\\GPX\\ghost01.gpx",
"CursorFolder": "C:\\Turbo GPX\\image\\ghost\\ghost01",
"CursorOpacity": 255,
"ShowCursor": true,
"ShowTrack": true
}
]
}マルチゴースト
{
"FileType": "TurboGPX.Ghost",
"Version": 1,
"Settings": {
"UseRawStart": false,
"InterpolateCrossing": false,
"Hud": {
"Position": "TopRight",
"Items": [
"TDIF"
]
}
},
"Ghosts": [
{
"Enabled": true,
"GpxFileName": "C:\\GPX\\ghost01.gpx",
"CursorFolder": "C:\\Turbo GPX\\image\\ghost\\ghost01",
"CursorOpacity": 255,
"ShowCursor": true,
"ShowTrack": true
},
{
"Enabled": true,
"GpxFileName": "C:\\GPX\\ghost02.gpx",
"CursorFolder": "C:\\Turbo GPX\\image\\ghost\\ghost02",
"CursorOpacity": 192,
"ShowCursor": true,
"ShowTrack": true
},
{
"Enabled": false,
"GpxFileName": "C:\\GPX\\ghost03.gpx",
"CursorFolder": "C:\\Turbo GPX\\image\\ghost\\ghost03",
"CursorOpacity": 128,
"ShowCursor": true,
"ShowTrack": true
}
]
}この例では、Ghost #1 と Ghost #2 が有効です。Ghost #3 は
Enabled=false のため生成されません。
GPXデータに関する注意
ゴーストの精度は、GPXデータの品質に依存します。
| 条件 | 影響 |
|---|---|
| GPXポイント間隔が粗い | 位置や時刻の誤差が大きくなる |
| GPSログが乱れている | ゴースト位置が不自然に移動する |
| ベースとゴーストのコースが大きく違う | 距離差や時間差が直感的でなくなる |
| スタート位置がずれている | TDIFや比較開始位置に影響する |
| ゴール位置がずれている | 最終タイム差に影響する |
正確に比較したい場合は、ベースGPXとゴーストGPXのスタート位置、ゴール位置、コース形状をできるだけ揃えてください。