マスターに向けた拡張項目
このページは、GPS-MEMOをマスター版に向けてより魅力ある内容へ育てるための拡張候補を整理するものです。プロトタイプでは、意図したエリアへの到着通知を確認できました。ここでは、リリースやマスター化に向けて検討するA-Jを一覧化します。詳細な実装順と検証条件の正本は、リポジトリの作業計画書で管理します。
| ステータス | 機能名 | 機能説明 | 実装難易度 |
|---|---|---|---|
| 候補 | A: バックグラウンド未起動でも通知 | スマホアプリが前面や通常のバックグラウンドにいない場合も、iOSが許す範囲で到着通知を成立させる。 | 高 |
| 候補 | B: 消費電力削減 | 位置監視、判定頻度、通知条件のON/OFFを整理し、常用時の電池負荷を下げる。 | 高 |
| 候補 | C: 通知エリア設定値の洗練 | 「入った」、通知、要求精度などの設定値を実測で洗練し、誤通知や遅すぎる通知を減らす。 | 中 |
| 候補 | D: UI見直し | メモ追加、最新通知、メモ一覧、診断機能などを、通常利用者が迷わない構成へ見直す。 | 中 |
| 仕様整理済み | E: 重なり合った複数エリア対応(徒歩版) | 複数メモの「入った」エリアが重なっても確認状態を独立して維持し、それぞれの通知エリアへ到達した順に履歴記録・通知する。通知エリアは安全マージン込みで重ならないよう作成・編集を制限する。 | 中-高 |
| 候補 | F: 近くのメモ検索 | 利用者の操作で、現在地から設定距離内のメモを検索し、リスト表示する。 | 中 |
| 候補 | G: 履歴のフォルダ化 | 履歴をフォルダ階層やグループ単位で表示・絞り込みできるようにする。 | 中 |
| 候補 | H: メモ情報のインポート | PCなどで作った観光スポット等のデータ集をインポート・削除できるようにし、F/Gと組み合わせる。 | 中-高 |
| 候補 | I: 曜日・時間による通知ON/OFF | 曜日・時間で判定をON/OFFし、OFF時間は不要な測位を止める。 | 中-高 |
| 新規候補 | J: 自動車・進行方向別・超広域モード | 高速道路の上り・下りなど進行方向に応じて通知を分け、サービスエリアや沿線の名所を高速移動中に案内する。 | 高 |
E: 重なり合った複数エリア対応(徒歩版)
判定
- 「入った」エリア同士は重なってよく、大きなAの「入った」エリア内にBの「入った」、通知、安全エリアが存在してよい。
- Aを確認中にBへ進入してもAの確認状態を失わない。Bの通知エリアへ先に到達したらBだけを履歴記録・通知し、その後Aへ到達したらAを別に履歴記録・通知する。
- iOSのenterイベント順へ依存せず、確認中メモは集合で管理する。位置情報ストリームは1本を共有し、各メモの退出・期限切れ・通知は他の確認状態を終了させない。
通知半径と自動計算
- 通知半径は25-250m。プリセットは短域25m、中域125m、広域250m。
- 通知スライダーは
通知半径 = 25 + 225 * x^1.1699とし、中央で125mにする。 - 準備距離は
25 * (通知半径 / 25)^0.77815、「入った」半径は通知半径と準備距離の合計。短域50m、中域約212m、広域400m。短域50mは実地試験し、取りこぼしが多ければ70mへ見直す。 - 安全マージンは
10 * (通知半径 / 25)^0.77815。短域10m、中域約35m、広域60m。2件の中心間距離は、双方の「通知半径 + 安全マージン」の合計以上を必須とする。 - 短域25m同士は中心間70m以上で通知円間20m、広域250m同士は中心間620m以上で通知円間120mを空ける。
- 要求精度は短域30m、中域60m、広域90mとなる指数曲線で計算する。確認時間は「入った」半径に対して10-30分を1分単位の直線で計算する。
- 測位頻度は基準歩行速度2.0m/s、通知半径、実測速度から3-30秒で自動計算し、停止・極低速時は30秒とする。線分が通知円を横切った場合も補完判定する。
画面
- メモ作成・編集地図は、通知エリア、安全マージン、「入った」エリアの三重表示にする。既存メモも表示し、既存分はグレースケールにする。
- 通常画面で操作するのは通知半径スライダーだけとする。
- 計算式の最小・最大・指数は、メモを作れないプレビューMAP付き詳細・開発設定画面で調整する。
- 設定保存時は既存メモの通知半径を変えず、派生値を再計算する。次のアプリビルド時は既存メモを全削除した状態から始める。
J: 自動車・進行方向別・超広域モード
- 徒歩版Eとは別モード・別実装単位とする。
- 高速道路の上り・下り用メモは、同じ地点でも方向条件と内容が異なる別メモとして扱えるようにする。
- 通知地点の手前側だけへ伸びる細長い接近エリアを持たせ、正しい方向では測位と方向確認を始めてから通知地点へ到達できるようにする。
- 逆方向は「速く通過して判定が間に合わなかった」ことへ依存せず、進行方向不一致として明示的に通知対象外にする。
- 方向判定にはiOSのcourse、courseAccuracy、speed、speedAccuracyを使い、不十分な場合は連続位置から補完する。
- iOSのregion監視は円形のため、接近エリア全体を覆う起動用円と、アプリ側の方向付き形状判定を組み合わせる案を第一候補とする。
- 形状、許容角度、上下線の指定方法、超広域時の半径・測位頻度はJの実装計画で確定する。
H/I/Jなどの属性は、将来iOSのregion上限内で監視対象を内部選択する材料にできる。ただし、利用者が直接指定する優先度UIや計算規則は現段階では確定・実装しない。