みんなのGOLF AR
ai_team
コースエディタ:操作説明書
資料作成者:OpenAI Codex(gpt-5.6-sol) 更新日:2026年9月2日
このページで分かること
every_golfのコースエディタでできることと、各操作の手順を説明します。エディタはゴルフゲームを作るものではなく、ゴルフ場で現在地・方向・距離・高低差・地形を案内するためのデータを作る道具です。
エディタを開く
SafariまたはChromeで次のローカルHTMLを開きます。
file:///Users/trons-fuyuki/Projects/every_golf/doc/ai_team/viewer/kawana_viewer.html
正本ファイルは /Users/trons-fuyuki/Projects/every_golf/doc/ai_team/viewer/kawana_viewer.html です。初期状態では川奈ホテルゴルフコース1番ホールのサンプルを表示します。
エディタでできること
- 国土地理院データを使ったホール地形の3D表示
- 線・段彩・写真、等高線、ルート線、属性重ね表示の切替
- コースとホールの作成、選択、名称・番号・Par・並び順の編集
- 作成済みFloorDataの読込とホールへの関連付け
- 地表属性と判定対象外maskのブラシ編集
- レギュラー/バック/レディースTee、Green代表点、Cupの配置
- ルートポイントの追加、移動、削除
- TEEまたはルートポイントを基準にした距離円弧の表示
- 編集途中のブラウザ保存、Hole/Course JSONの読込・出力
- 出力前validationとUndo
画面の見方
- コース/ホール管理:コース、ホール、床データ、Tee、Green、Cup、保存、検査、JSON入出力を操作します。
- 3D地形:地形、ルート、Tee、Green、Cup、距離円弧を表示し、編集対象を直接操作します。
- 数値読出し:Teeと案内目標の標高、高低差、直線距離、カーソル地点の標高を表示します。
- 縦断図:レギュラーTeeからGreenまたはCupまでの標高変化を表示します。
地形の表示を調整する
- 左ドラッグ:地形を回転します。
- Shift+ドラッグ:表示位置を移動します。
- Shiftを素早く2回、または「表示位置を戻す」:移動をリセットします。
- ホイール:拡大・縮小します。
- 線/段彩/写真:地形の表示方法を切り替えます。
- 属性を重ねる:地表属性を半透明で表示します。sliderで濃さを変えられます。
- 高さ強調:高低差の見え方を1.0~8.0倍で調整します。
- 見下ろし角:横から見るか、真上に近い角度で見るかを調整します。
- 等高線2m/ルート線:必要な補助線を表示・非表示にします。
コースとホールを管理する
- 右上の「コース」で編集対象を選びます。
- コース名を入力します。新しいコースが必要な場合は「新規コース」を押します。
- 「ホール」で編集対象を選び、番号、Par、ホール名を入力します。
- 「ホール追加」で追加し、↑/↓でコース内の並び順を変更します。
- 「床データ」で、そのホールに使うFloorDataを選びます。
床データを変更すると、そのホールの属性、mask、Tee、Green、Cup、ルートが新しい床に合わせて初期化されます。確認dialogの内容を読んでから実行してください。
生成済みコースを読み込む
Tee、Green、Cup、地表属性、判定対象外mask、ルートまで含めて作業を始める場合は、右上の「Course読込」を使います。「床読込」ではありません。
- 「Course読込」を押します。
- 読み込む
*.course.jsonを選びます。 - 読込後、右上の「コース」と「ホール」で編集対象を選びます。
- 3D地形上のTee、Green、Cup、属性、ルートを確認してから編集を始めます。
芹が谷のCourseData:
/Users/trons-fuyuki/Projects/every_golf/doc/ai_team/data/generated/serigaya/serigaya.course.json
Machida-cityのCourseData:
/Users/trons-fuyuki/Projects/every_golf/doc/ai_team/data/generated/machida-city/machida-city.course.json
Course読込と床読込の違い
「Course読込」はコース、各ホール、FloorData、Tee、Green、Cup、属性、mask、ルートをまとめて読み込みます。「床読込」は標高、画像、範囲等のFloorDataだけを読み込みます。床ファイル単体にはTee、Green、Cup、属性、mask、ルートは入っていません。
Tee、Green、Cupを配置する
- 配置対象を選ぶ:「選択中TEE」「Green代表点」「Cup」から変更したい対象を選びます。
- Tee種別を選ぶ:Teeの場合は、レギュラー、バック、レディースから対象を選びます。
- 配置を開始する:「地形上へ配置」を押します。ボタンが「地形をクリック」に変わったことを確認します。
- 位置を指定する:3D地形上の置きたい場所を押します。既存のTee、Green、Cupを選んだ場合も、その位置へ移動します。
- 配置を終了する:「地形をクリック」をもう一度押し、通常の「地形上へ配置」へ戻します。
- Cupを使う:Cupを置いた後、「Cupを案内目標にする」を選びます。距離、高低差、縦断図、ルート終点がCupへ切り替わります。
- 位置を確認する:REG TEE、BACK TEE、LADIES TEE、GREEN、CUPのpinを見て位置関係を確認します。
レギュラーTeeとGreen代表点は必須のため削除できません。バックTee、レディースTee、Cupは「選択点を削除」で削除できます。すべてのTeeは最寄りのルートポイントへ自動接続されます。
現行エディタには緯度経度を数値で直接入力する欄はありません。Tee、Green、Cupの位置変更は3D地形上のクリックで行います。画面上部の座標は小数点以下4桁へ丸めて表示されますが、CourseDataへの保存時は緯度経度を小数点以下7桁まで保持します。
地表属性を編集する
- 「属性を編集」を押します。左側に属性ブラシが開きます。
- 不明、フェアウェイ、ラフ、林・樹木、バンカー、道・カート道、建物、グリーン、OB、川、池、海から属性を選びます。
- 太さを1、3、5、7、9マスから選びます。
- 3D地形をドラッグして塗ります。地形の回転は右ドラッグを使います。
- 「属性編集を終了」を押して通常表示へ戻ります。
不明は判定対象内だが属性が未確定の場所です。OBは利用者へ警告する対象なので、判定対象外にはしません。
判定対象外maskを編集する
- 「判定範囲を編集」を押します。
- 「判定対象」または「判定対象外」を選びます。
- 太さを選び、3D地形をドラッグして塗ります。
- 「判定範囲編集を終了」を押して通常表示へ戻ります。
判定対象外は地表属性とは別のmaskです。スマホアプリの方向・地形・標高検索から完全に除外する場所だけを対象外にします。
ルートを編集する
- 基本ルートpanelで、TEEから各ポイント、案内目標までの区間距離・高低差と全長を確認します。
- 「ルートを編集」を押します。
- 地形上のpin以外の場所をclickすると、最も近い区間へ新しいルートポイントが入ります。
- 番号pinをドラッグすると移動します。番号pinを右clickすると削除します。
- 「すべて削除」は全ルートポイントを消します。TEEとGreenは消しません。
- 「ルート編集を終了」を押して通常表示へ戻ります。
ルート全長は TEE → P1 → P2 … → GreenまたはCup の全区間を含みます。
距離表示を使う
- 右側の「距離表示」を選びます。初期基準点はレギュラーTEEです。
- 地形上に基準点から50yardまたは50m刻みの距離円弧が出ます。
- ↑キーでTEEからP1、P2、P3の順に進み、↓キーで前のポイントへ戻ります。最後のルートポイントとTEEで停止します。
- 地形上のTEEまたは番号pinを押して直接選ぶこともできます。同じpinをもう一度押すとTEEへ戻ります。
- yard/meterを切り替えます。
文字入力欄や選択欄を操作している間は、上下キーを距離基準点の変更に使いません。
Undoで編集を戻す
「戻す」または Command+Z(Windows系はCtrl+Z)で、現在ホールの直前の編集を最大40手まで戻せます。
- 地表属性と判定対象外maskのブラシ操作、初期化
- ルートポイントの追加、移動、削除、全削除
- Tee、Green、Cupの追加・移動・削除
- Green/Cupの案内目標切替
コース/ホールの作成・削除、JSON読込、床変更は一手Undoの対象外です。Redoはありません。
保存、検査、JSON入出力
- 作業保存/検査/出力:「作業保存」はブラウザ内へ途中状態を保存します。「検査」は必須項目、配列size、座標範囲、ID重複、Tee接続等を調べます。検査合格後にCourseまたはHoleを出力します。
- 表示切替:線、段彩、写真と属性overlayを使い、出力前に位置関係と塗りを見直します。
- 縦断図:Teeから現在の案内目標までの標高変化と距離を確認します。
芹が谷H3で属性とルートを編集した場合の保存手順
- 芹が谷H3を選択した状態で「作業保存」を押します。
- 「検査」を押し、validation errorがないことを確認します。
- 「Course出力」を押し、芹が谷の全ホールを含むCourseDataを保存します。
- H3だけを別ファイルでも受け渡す場合に限り、「Hole出力」も押します。
- 後日続きから作業するときは、出力したCourseDataを「Course読込」で読み込みます。
「作業保存」だけではJSONファイルは作られません。確実に残す場合は「検査」の後に「Course出力」まで行ってください。また、編集後に元の未編集CourseDataを再読込すると、作業一覧にある同じcourse IDの内容が未編集状態へ置き換わります。
保存先とファイル名
| 操作 | 保存される場所 | 内容 |
|---|---|---|
| 作業保存 | 現在使用しているブラウザ内の保存領域 | 途中作業。ファイルは作りません。 |
| Course出力 | 現在使用しているブラウザで設定されたdownload先 | <course-id>.course.json |
| Hole出力 | 現在使用しているブラウザで設定されたdownload先 | <hole-id>.hole.json |
SafariまたはChromeの標準設定では通常 /Users/trons-fuyuki/Downloads/ へ入りますが、ブラウザの設定でdownload先を変更している場合は、その指定先へ保存されます。芹が谷なら代表的な保存先は /Users/trons-fuyuki/Downloads/serigaya.course.json です。同名ファイルが既にある場合は、ブラウザがファイル名へ連番を付けることがあります。
Course出力とHole出力は、読み込んだ元のJSONを上書きせず、新しいJSONをdownloadします。Safariで「作業保存」した内容とChromeで「作業保存」した内容は共有されません。ブラウザの履歴やサイトデータを削除すると途中保存が失われる可能性があるため、最終保存として残す場合はCourseDataも出力してください。
JSONを読み込む
- Course読込:CourseData一式を作業一覧へ読み込みます。Tee、Green、Cup、属性、mask、ルートまで続きから編集する場合に使います。
- Hole読込:FloorDataを含むHole packageを現在のコースへ読み込みます。
- 床読込:作成済みFloorDataだけを読み込みます。Tee、Green、Cup、属性、mask、ルートは読み込みません。床データを国土地理院から取得・生成する処理は、このエディタとは別工程です。
困ったとき
- 戻すが押せない:まだUndo対象の編集がありません。ブラシを地形上で動かした後、またはCommand+Zを試します。
- 上下キーで距離基準点が動かない:「距離表示」が選ばれているか確認し、入力欄・選択欄からfocusを外します。
- Cupを案内目標にできない:先に配置対象をCupにして、地形上へCupを置きます。
- JSONが出力されない:「検査」を押し、表示されたvalidation errorを修正します。
- 編集buttonの表示がおかしい:一度現在の「~編集を終了」または「地形をクリック」を押して通常表示へ戻します。再発した場合は画面と操作順を記録してください。
製品データの画像について
every_golfは国土地理院のdata・画像を採用します。Google画像を製品データへ使用しません。
アプリケーション設計:概要書
資料作成者:OpenAI Codex(gpt-5.6-sol) 更新日:2026年9月3日
このページの位置づけ
every_golfのスマホアプリ、Even G2アプリ、外付け方位センサー、現在地取得機能の役割と、ラウンド中の基本動作を整理した概要書です。ここに書かれた機能が実装済みという意味ではなく、今後の設計と実装で共通の基準として使います。
製品構想の正本は /Users/trons-fuyuki/Projects/every_golf/doc/from_fuyuki/PROJECT_VISION.md です。このシステムは完全な攻略法を決定するものではありません。コースデータ、現在地、プレイヤーの登録情報から基本的な番手と方向を提案し、最終判断はプレイヤーが行います。
実現する体験
プレイヤーが現在地で次のショットを検討するとき、スマホアプリがコースデータ、現在地、頭部方位、登録済みの番手とキャリーを組み合わせ、Even G2へ必要な情報を表示します。
- どの番手を使うかの提案
- どちらの方向へ打つかの提案
- 提案方向と現在向いている方向の差
- 距離と高低差
- ショット方向付近にあるOB、池、川、海、バンカー、森・樹木
- 現在のライ、ホール番号、Par、スコア
風、プレイヤーの当日の調子、ボールの沈み方、木の実際の高さや枝の張り出しは判定しません。現地の視界と状況を見たプレイヤーの判断を優先します。
システム全体の構成
スマホアプリをシステムの中心とします。スマホアプリがデータとラウンド状態の正本を持ち、Even G2アプリは表示と操作を担当します。G2との接続が一時的に切れても、ラウンド情報はスマホ側に残します。
役割分担
| 構成要素 | 主な役割 | 担当しないこと |
|---|---|---|
| スマホアプリ | データ保持、位置情報の選択、提案計算、ラウンド進行、ショット・スコア記録 | 頭部方位そのものの計測 |
| BLE接続GPS | 緯度・経度、測位時刻、精度等をスマホへ提供 | 番手提案、コース判定、スコア管理 |
| 外付け方位センサー | 頭部方位、必要に応じて傾き、校正状態をスマホへ提供 | 現在地取得、コースデータ保持、攻略判断 |
| Even G2アプリ | HUD表示、ラウンド操作、番手変更、スコア入力・修正 | 永続データの正本管理、重い判定処理 |
| Web UI | プレイヤープロフィールの入力・編集 | ラウンド中に必須となる処理 |
Web UIは便利な編集手段ですが、通信できないゴルフ場でもラウンドできるよう、ラウンド中の基本機能はスマホ内だけで成立させます。
スマホアプリの役割
スマホアプリは、入力データを集約して判断し、ラウンド状態を保存する中心装置です。
- PlayerProfile、CourseData、HoleData、FloorDataを保存する
- スマホ内蔵GPSとBLE接続GPSから、実際に使用する現在地を選ぶ
- 方位センサーから頭部方位と校正状態を受け取る
- 現在地から近いコースを検索する
- Teeショットの開始条件を検査する
- 現在のライと標高をFloorDataから取得する
- 登録済み番手、キャリー、高低差、基本ルートから提案を計算する
- G2へ表示するHUD情報を作る
- ショット、パット、スコア、修正内容を記録する
- G2再接続時に継続中の状態を復元する
現在地の取得元
現在地はスマホ内蔵GPSだけに固定しません。スマホアプリ内に共通の「現在地提供元」を用意し、スマホ内蔵GPSとBLE接続GPSを同じ形式で扱います。
| 選択モード | 動作 |
|---|---|
| 自動 | 接続中で、有効かつ新しいBLE GPS情報を優先します。使用できない場合はスマホ内蔵GPSへ切り替えます。 |
| スマホGPS | スマホ内蔵GPSだけを使用します。 |
| BLE GPS | BLE接続GPSだけを使用します。使用できない場合は現在地が必要な操作を止め、警告します。 |
2つのGPS座標は根拠なく平均しません。採用した1つの測位結果を、その時点の現在地として使用します。自動切替が起きた場合は、G2へ使用中の情報源と注意状態を通知します。
共通の現在地データ
各GPSから受け取った情報は、スマホアプリ内で次の共通形式へ変換します。
| 項目 | 内容 | 必須 |
|---|---|---|
| source | phone_gpsまたはble_gps | 必須 |
| latitude / longitude | 緯度・経度 | 必須 |
| altitude | GPSが報告した標高 | 任意 |
| horizontalAccuracyM | 水平精度の目安 | 必須 |
| verticalAccuracyM | 垂直精度の目安 | 任意 |
| timestamp | 測位した時刻 | 必須 |
| fixStatus | 測位の有効性やfix状態 | 必須 |
| satelliteInfo | 衛星数等、機器が提供できる品質情報 | 任意 |
FloorDataの標高とGPSが報告する標高は用途を分けます。コース上の高低差計算はFloorDataを基準とし、GPS標高は測位品質の確認や将来の検証材料として扱います。
BLE接続GPSの扱い
BLE接続GPSは「現在地提供元」です。方位センサーとは別の機能として設計します。将来、GPSと方位センサーを同じ筐体や同じBLE機器へ統合する場合も、スマホアプリ内では位置情報と頭部方位を別々の入力として扱います。
- 接続、切断、再接続をスマホアプリが監視する
- 測位時刻から古い情報を検出する
- 測位無効や精度不足を検出する
- 自動モードでは、BLE GPSが使用不能になったらスマホGPSへ切り替える
- ショット記録へ、使用した位置情報源、精度、測位時刻を残す
- GPS機器の接続状態と測位状態を別々に管理する
未確定
BLE GPSの具体的な機種、BLE serviceとcharacteristic、データ形式、通知周期、許容精度、情報を期限切れとする秒数は、機器選定と実測後に決定します。現時点では特定機器専用の形式へ固定しません。
現在地を使う処理
| 処理 | 現在地の使い方 |
|---|---|
| コース検索 | 各ホールのFloorData境界と現在地の最短距離を調べ、どれか1ホールでも2km以内にあるコースを表示します。 |
| Teeショット開始 | 現在地から登録済みTee座標までの距離を調べ、半径5m以内であれば成立します。 |
| 現在のライ | 現在地に対応するFloorDataセルの地表属性を取得します。 |
| ショット記録 | 直前のアドレス位置から現在地までの距離、到着地点の属性、使用した位置情報源を記録します。 |
| 番手・方向提案 | 現在地、基本ルート、FloorDataの標高、プレイヤーのキャリーを組み合わせます。 |
CourseDataには、コース検索用として各ホールのFloorDataの四隅または同等の境界情報を保存します。ホール番号だけでOUT・INを決めず、それぞれに所属するhole IDを明示します。
プレイヤープロフィール
プロフィールはスマホアプリまたはWeb UIで入力します。スマホアプリはラウンド中に使える状態でプロフィールを保持します。
- 右打ち/左打ち
- 所有している番手
- 番手ごとのキャリー
- パター
キャリーが未入力の番手は選択候補へ出しません。パターはデフォルトで所有しているものとして扱います。
コース検索とラウンド開始
- G2で「コースを探す」を押します。
- スマホアプリが現在地とCourseData内の各FloorData境界を比較します。
- どれか1ホールでも2km以内にあるコース名をG2へ表示します。
- プレイヤーがコースを選びます。
- OUT、IN、FULLからラウンド形式を選びます。
- CourseDataに明示されたhole IDの順序でラウンドを開始します。
ラウンド中の状態
ラウンド中は、次の状態をスマホアプリが管理します。
コース選択 ↓ ラウンド設定(OUT / IN / FULL) ↓ Teeショットモード ↓ 「アドレス状態」ボタン アドレス状態 ↓ ショット 通常ショットモード ↓ 「アドレス状態」ボタン アドレス状態 ↓ 必要回数繰り返す ホールアウト ↓ スコア確認・修正 ↓ 次ホールのTeeショットモード
Teeショットモード
- プレイヤーが「Teeショット」ボタンを押します。
- スマホアプリが半径5m以内に登録済みTee座標があるか検査します。
- 成立したらTeeショットモードを開始します。
- 提案された方向と番手を確認し、必要であれば登録済み番手へ変更します。
- 「アドレス状態」ボタンを押すと、正式なアドレス状態へ進みます。
通常ショットモード
- プレイヤーが次のボール位置へ移動し、「アドレス」ボタンを押します。
- 直前のアドレス位置から現在地までを前回ショットの飛距離として記録します。
- 前回使った番手と、現在地の床属性を記録します。
- 現在地から次の打数のショットモードを開始します。
- 提案された方向と番手を確認・変更し、「アドレス状態」ボタンを押します。
「アドレス」ボタンは前回ショットの確定と次ショットの検討開始に使います。「アドレス状態」ボタンは、方向と番手を決めた後にスイング姿勢へ進むための別操作です。
正式なアドレス状態
ショット方向を検討している状態と、実際にスイングする姿勢を区別します。正式なアドレス状態では、右打ちの場合、ショット方向に対して上から見て時計回りに90度回転した向きを基準にします。左打ちは反対方向の90度を基準にします。
方位センサーから受信した頭部方位と基準方向を比較し、G2へ左右の回転量や一致状態を表示します。方位センサーが未接続、未校正、精度不足の場合はアドレス案内を止め、理由を表示します。
番手とショット方向の提案
- 現在地から基本ルートを先へたどります。
- プロフィールに登録された番手とキャリーを候補にします。
- 番手ごとの一般的な弾道の高さと、現在地から着弾候補までの高低差を使ってキャリーを補正します。
- 補正後のキャリーと基本ルートが交わる付近を提案方向とします。
- プレイヤーが別の登録済み番手へ変更した場合は、キャリー、方向、周辺情報を再計算します。
風は計算へ入れません。木や建物の実際の高さもFloorDataにないため、弾道が越えるかどうかは判定しません。
登録されたキャリーでは池や森などへ到達する場合、同じ番手を使うときの力加減を20%単位で案内できます。人が再現しにくい5%単位の表示は行いません。
障害物・地形情報の表示
表示対象は次の6種類です。これらの存在を理由に基本ルートや提案方向そのものは変更せず、プレイヤーが判断するための情報として表示します。
- OB
- 池
- 川
- 海
- バンカー
- 森・樹木
暫定の最大表示件数は5件です。提案したショット方向とキャリーに近い対象を優先し、左右へ外れた場所よりも、ショット方向の手前や先にある対象を優先します。
未確定
ショット中心線から左右何mまでを検査するか、着弾候補の手前と先を何mまで検査するか、対象が重なった場合の詳細な順位は、FloorDataを使った試験で決定します。
G2へ表示する情報
情報名、方向記号、距離を小さな表示へまとめます。距離を1行目、方向記号と情報名を2行目にする表現を基本とします。
145yd ▼ Green
HUDには次を表示します。
- ホール番号とPar
- 前ホールまでのトータルスコア
- 現在のライ
- 提案中または選択中の番手
- 補正後キャリーと力加減
- ショット方向
- 最大5件の障害物・地形情報
- GPS情報源、位置精度、方位センサーの警告
G2アプリの役割
G2アプリはスマホアプリから表示用データを受け取り、プレイヤーの操作をスマホへ返します。
- コース検索、コース選択、OUT・IN・FULL選択
- Teeショット開始
- 提案内容の表示と登録済み番手への変更
- アドレス状態の開始
- 次のショット位置の確定
- ホールアウト
- パット数入力、スコア表示、スコア修正
G2側ではCourseData一式やスコアの正本を持ちません。操作イベントをスマホへ送り、スマホが検査・保存した結果を再表示します。
外付け方位センサーの役割
外付け方位センサーは、プレイヤーの頭が向いている方角を測定し、BLEでスマホへ送ります。
- 方位角
- 必要に応じたPitch・Roll
- 校正状態または精度
- 測定時刻
- バッテリー残量
方位センサーは番手、ルート、障害物、スコアを判断しません。購入済みのAE-NRF52840単体には方位センサーがないため、追加センサーの選定とファームウェア実装は現在保留中です。
ホールアウトとスコア
- 「ホールアウト」ボタンを押すと、直前のアドレス位置から現在地までを最終ショットとして記録します。
- そのホールの総打数とParを比較し、バーディ等の対Par表現を表示します。
- パット数を入力します。パット数は総打数に含まれる内数で、チップイン等では0回も認めます。
- チップイン、押し間違い、ペナルティ等へ対応するため、総打数、パット数、ペナルティを修正できます。
- 自動記録したショット履歴と、最終確定したスコアを分けて保持します。
スコア表示の呼称と見せ方は、「みんなのGOLF」シリーズで馴染みのある対Par表現を参考にします。
主なデータ
| データ | 内容 | 正本を持つ場所 |
|---|---|---|
| PlayerProfile | 左右の打ち方、所有番手、番手ごとのキャリー | スマホアプリ |
| CourseData | コース情報、OUT・INのhole ID、検索用FloorData境界 | スマホアプリ |
| HoleData / FloorData | 地形、属性、Tee、Green/Cup、基本ルート | スマホアプリ |
| LocationSample | GPS情報源、座標、精度、時刻、測位状態 | スマホアプリが選択 |
| HeadPoseSample | 頭部方位、傾き、校正状態、時刻 | 方位センサーから受信 |
| RoundState | コース、ホール、打数、現在のモード | スマホアプリ |
| ShotRecord | 始点・終点、番手、距離、ライ、位置情報源 | スマホアプリ |
| HUD表示データ | G2へ表示する提案、方向、距離、警告 | スマホアプリが生成 |
異常時と復旧
| 状態 | 動作 |
|---|---|
| BLE GPS切断 | 自動モードではスマホGPSへ切り替えます。BLE GPS固定モードでは位置依存操作を止めます。 |
| GPS情報が古い・無効・精度不足 | Tee判定やショット位置確定を止め、G2へ理由を表示します。 |
| 方位センサー切断・未校正 | アドレス方向案内を止め、再接続または校正を案内します。 |
| G2切断 | スマホ側でラウンド状態を保持し、再接続後にHUDを復元します。 |
| CourseData不正 | ラウンド開始前に拒否し、不足項目を表示します。 |
| キャリー未登録の番手 | 番手選択候補へ表示しません。 |
確定している方針
- スマホアプリを判断、保存、復旧の中心にする
- 現在地はスマホGPSとBLE接続GPSの両方を扱える構造にする
- 方位センサーとGPSを別の入力として扱う
- OUT・INはhole IDの一覧で明示する
- Teeショットは登録済みTee座標から半径5m以内で成立する
- 番手提案後にプレイヤーが登録済み番手へ変更できる
- 障害物情報は方向を自動回避させるためではなく、判断材料として表示する
- 力加減は20%単位とする
- パット数は総打数の内数とし、スコアを後から修正できる
実装前に決定・検証する項目
- BLE GPSの機種、通信service、データ形式、通知周期
- 位置精度の許容値と、測位情報を期限切れにする時間
- BLE GPSとスマホGPSを切り替える際の画面表示と記録方法
- 番手種別ごとの標準弾道モデルと高低差補正式
- 障害物検索範囲と優先順位の数値
- Even G2 SDKで利用できる画面、入力、通信、保存機能
- HUDに同時表示できる情報量と実機上の読みやすさ
- Web UIとスマホアプリ間のプロフィール同期方式
現在の実装状況
このページはアプリケーション設計の概要です。スマホアプリ、Even G2アプリ、BLE GPS連携、方位センサーファームウェアが完成したことを示す資料ではありません。実装後は自動テストだけでなく、スマホ、G2、GPS、方位センサーを組み合わせた実地確認が必要です。