-
Notifications
You must be signed in to change notification settings - Fork 13
design
Daisuke Sato edited this page Oct 5, 2021
·
1 revision
最終更新日:2018年8月1日
V1: 3f3193c17c49f15e76a1f33c8a1df097bc7ac539をベースに作成
- サーバーに規約を確認済みかどうか必ず確認する
- サーバーは規約の設定がONの場合は規約確認済み化でレスポンスする。設定がOFFの時は常に確認済みとしてレスポンスする。
- 接続するMapServiceのサーバーおよびサーバー設定ファイル(server_config.json)のセットをリスト表示する。
- サーバーリスト決定方法
- 1つのサーバーで複数の設定をすることがありうる
- デモ用途には必要
- サーバー設定はServerConfigが管理
-
selected
=trueとしておけば、自動的に選択される。リストの一番最初に出てきたものが選択される。
-
- TODO: 配布アプリでは現在地に合わせてサーバーが自動的に選択される方式にしたい
- 選択したサーバー設定に記述されているデータ(src, size)をダウンロードする
- 位置推定用のモデルファイル
- 各モード別の設定ファイル
- すでにダウンロードしているファイルのサイズとsizeを比較して、同じ場合はダウンロードしない
- サイズが違う場合はsrcのファイルをダウンロード
- モデルファイルは転送量削減のためにgzip圧縮しておくが、sizeには圧縮していないサイズを記述する
- 視覚障害者、車椅子、一般モードの選択
- NavCogの本流としては視覚障害者だけにしたいが、ビジネス要件的に必要。
-
server_config.json
-
key_for_blind
に詳細設定を表示するのと同じハッシュの仕組みで生成したキーを設定しておくと、Documentsディレクトリのblind.keyfileのマッチして、視覚障害者モードを表示するかどうかを決定する- 視覚障害者モードを限定した人にしか使えなくするための機能
-
default_mode
に"user_blind
"か"user_wheelchair
"か"user_general
"を指定しておくと、自動的にモードが選択される
-
- TODO: VoiceOverの起動の有無等で切り替えられると良いのではないか
- NavUtil
- 指定したビューの上にかぶせて、Loadingなどの表示をする
- Modalの場合は全画面操作ができなくなる
設定・詳細設定 SettingViewController
- 基本設定以外の詳細な設定。開発用、デモ用オプション含む
- 複数階層のテーブルリストのメニューを生成するが、Storyboardのシーンは1つだけで使いまわして使う
- 視覚障害者モードのルート検索オプションのメニューもここで作る
- 設定項目は全てNSUserDefaultsに書き込む
- HLPSetting関連のクラスを利用する
- VoiceOverで操作できるように
- server_config.jsonのプリセットで上書き可能(ConfigManager)
-
データ管理 :ナビゲーションに関する情報を保持するHelperクラス
- 現在位置、方向、目的地リスト、POI、ルート
- POIをロードして、どのリンクに割り当てるかを計算する
- HLPGeoJSON 歩行空間ネットワークデータ
- HLPLocation 位置情報
- ナビゲーションが終わった時に、一定回数間隔で評価画面を表示する
-
サーバー設定で
ask_enquete
がオンの時のみ
- 対話で行き先を決定するための機能。
- ボタンは地図の上に表示されているがNative実装。
- ボタンを押すと、行先設定画面、行先リスト画面、対話画面と複数の遷移を実行する
- 対話から戻ってきた時に行先設定画面からでないとナビをスタートできないので…
- TODO: 直接対話画面にできたほうが良い。
- Native実装。音声読み上げ速度など設定項目の一部のみ表示。
- 手動で行き先を設定するための画面
- デモや実験にお用途にスタート地点も現在地以外にリストから選べるようにしている
- 階段、エレベータ、エスカレータ、動く歩道、点字ブロック優先等のオプションを設定できる
- POIの詳細をHTMLページとして表示する
- 経路を自動もしくは手動(デバイスを振る)でプレビューする機能
- Native実装。視覚障害者モードと基本同じだが、地図画面から直接対話画面を開く。
- 結果をJSに渡す必要がある。
- Native実装。音声読み上げ速度など設定項目の一部のみ表示。
- JS実装。接続サーバーによって、ドロップダウンメニュー(コレド以外)だったり、テーブル形式のメニュー(コレド)だったりする。
- JS実装。JSの状態に合わせて、Nativeのナビゲーションバーに出ているアイコンを変える。
- JS実装。位置推定結果をNativeからブラウザに通知。
- コマンドラインツール ナビで読み上げられるテキストを確認するためのツール。基本コードをNavCogと共有している
- フィンガープリント用のツール 基本コードをNavCogと共有している