swiftUIでのナビソフト開発でアドバイス希望してます。
最近iPhoneソフト開発を始めたaround seventyの個人タクシー運転手です。作りたいナビソフトが有るのでただいまいろんな教則本を買って勉強中です。環境はmac OS 13.2.1Ventura、XcodeはVersion14.3.1(14E300c)です。SwiftUIで行っています。
作りたいソフトはタクシー運転手の為のセカンド(サポート)ナビです。
個人タクシーの車両には必ず車に設置されたナビが有るのですが、このナビは私の”個人タクシー”という環境では必ずNorth UPにしてお客さんが自分の乗ったタクシーが今ドコを走っているのか?を表示するサービスとして機能しています。でも必ずしもお客さんだけの環境でもありません。お客さんが降りた時、自分の車両が何処にいて?どっちの方向を向いているか?を判断するのに単に視線を本ナビに動かすだけで判断できるからです。
私はハンドルの左は車両設置のナビ、右側にiPhoneのYahooナビを進行方向UPにしています。そういう環境では、右側にあるiphoneのヤフーカーナビの目的地検索機能は不要、必ず画面の3分の1は不要な表示が出るので、これも不要、2タップして全画面表示にして使用しています。
表示画面を出来るだけ広くしたいので、自分専用のナビを自分で作れないか?と思いまして、iPhoneのナビソフト開発を勉強しつつ開始した訳です。
教則本の添付のコードに希望のコードが有ったので、早速buildし自分のiPhoneに実機転送して試してみました。おおまか希望通りに動くのですが2つほど気に入らない点があります。それは、
1.ナビゲーション画面が進行方向UPではなく、North UPである
2.自分のiPhoneの設定デフォルトであるロック時間に拘束されいつのまにかブラックアウトしている
の2点です。
教則本にあるcodeは、そのままC&Pするのも気が引けるので、言葉で解説(.swiftファイル2つ)、
- 1.ContentView.swift>LocationManagerを変数managerに代入>MapTrackingModeを変数trackingModeに代入>ViewでMap
- 2.LocationManager.swift >classでLocationManagerを宣言する>NSObject, ObservableObject, CLLocationManagerDelgate>LocationManager宣言>変数regionにPublish>override初期化>スーパークラスのイニシャライザー実行>領域の更新(デリゲートメソッド)>locationManager宣言>Locationの最後の要素に対して更新
となっています。
ココで先ほどのプログラムを「進行方向UP」へ改変をしたいのですが、ContentView.swiftに追加するCode、LocationManager.swiftに追加するCodeに対し、何かアドバイスをいただけないでしょうか?
一応、https://jp-seemore.com/app/15700/#toc18のサイトの解説を参考にトライ中ですが、どのコードをどのファイルのどの位置に組み込めばいいのか?がよく分かりません。また、上記の解説があるサイトが有りましたらリンクを教えて頂きたいです。
一応、実際に実機転送したiPhoneのナビのスクリーンショットをココに添付します。
青い●の位置にたしかに私、待機していますのでNorth UPではちゃんと動いています。ちゃんと自分の位置を移動に伴いそのまま追随してくれています。よろしくお願いします。
iPhone 8