ゴースト


Turbo GPX | Ghost

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 の主な項目

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は完全に不透明です。

注意事項

スタートとゴール

スタートとゴールの設定には2つの方法があります。

全データ方式

ベースデータの先頭がスタート、末尾がゴールになります。それに合わせて、不要なポイントを削除して、データを調整します。

GPXの先頭をそのまま開始点として使いたい場合は、Use Raw Start をONにします。

ライン方式

マップ上で任意の2点を設定し、ラインを引きます。ライン上を交差した点をスタート/エンド(ゴール)地点とします。検出したスタート/エンド地点のインデックスが表示されます。

🚩でラインの1点目を設定します。クリック後に2点目を設定し、ラインが引かれます。クリアボタンでラインをクリアします。オプションの Start Pin / End Pin が使用されます。

ラインはインデックスを決めるためのものです。ゴーストデータがクリアされてもラインは残ります。ラインをクリアしたいときはクリアボタンを押してください。

ライン表示

各ラインの背景が緑/赤の場合、ラインが引かれています。クリアボタンでクリアしてください。


Ghost JSON の StartLine / EndLine

Ghost JSON では、Settings 内に StartLineEndLine を指定できます。

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 の ItemsTDIF だけを指定するのが安全です。

"Hud": {
  "Position": "TopRight",
  "Items": [
    "TDIF"
  ]
}

HUD項目の優先順

HUD項目の表示順は、Ghost JSON の Items に書いた順番ではありません。内部の固定順で扱われます。

  1. LATI
  2. LONG
  3. ELEV
  4. SPED
  5. DIST
  6. HEAD
  7. TYPE
  8. EDIF
  9. SDIF
  10. TDIF
  11. DDIF
  12. PDIF
  13. DST
  14. 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のスタート位置、ゴール位置、コース形状をできるだけ揃えてください。

inserted by FC2 system