よくある質問

商品情報

問題

ネットワーク

データ

UI のカスタマイズ

ルーティング

シミュレータ

Workflows

商品情報

Navigation SDK 利用規約を含むダイアログ ボックスをアプリに実装する必要がある 同意する必要があります。このダイアログ ボックスで、 利用規約への同意の機会を提供します。用語のテキスト ファイル Navigation SDK に付属しています。
Android では、NavigationApi.showTermsAndConditionsDialog を使用します。 メソッドを使用して、語句を含むダイアログ ボックスを表示します。
で確認できます。
iOS の場合、 GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
モバイル Google マップでサポートされている言語はすべて、 Navigation SDK で利用できます。 デバイスにデフォルトのシステム言語が設定されており、アプリでその設定を変更できない。ただし、 70 以上の言語に対応しています

はい。Android では、LocationListener が開始されると、その後は バックグラウンドで実行されます。アプリは道路スナップを続けて 調整します。

iOS で、位置と方位に関する位置情報の更新を継続的に受信するには 背景、道路スナップの実装、 allowsBackgroundLocationUpdates から YES に変更。

はい。ルートが作成または変更されると、RouteChangeListener ポリラインを作成します。

いいえ。Navigation SDK にはモバイル Google マップは必要ありません。 インストールする必要があります。
いいえ。Navigation SDK にはこの機能はありません。 あります。
はい。トラフィックの方向はデフォルトで使用可能になり、表示されます。
Navigation SDK の選び方 API を使用するのはモビリティ サービスのお客様だけですか?

Navigation SDK には、モビリティ サービスのお客様のみを対象とした API がいくつか用意されています。これらの API は、トランザクション単位で Google から請求されます。モビリティ サービスのユーザーでない場合は、次の方法を使用できます。

問題

Xcode 12 で、アプリがシミュレータ用に正しくビルドされません。解決方法を教えてください。

この問題を解決するには、Xcode プロジェクトのビルド設定を開き、「iOS Simulator」ビルドについてのみ Excluded Architecturesarm64 を追加します。

詳細については、次の StackOverflow スレッドをご覧ください。

GMSMapView が読み込まれない。

GMSMapView が読み込まれない場合:

  • Cloud コンソールで NavSDK が有効になっていることを確認します。
  • Nav SDK がインストールされているものの、プロジェクトで Nav SDK API を使用していない場合は、バイナリから削除します。

ネットワーク

Navigation SDK は接続の不安定さにどのように対処しますか?
Navigation SDK は、各ルートの事前キャッシュを作成します。 事前キャッシュに保存される情報には、15 ~ 20 分間のルーティング情報、 ドライバーがルートから逸脱した場合に備えて、代替ルートを提示します。「 Navigation SDK は、デバイスの GPS を使用して現在地を推定します。 センサー。
オフライン モードは利用できますか?
いいえ。Navigation SDK には ありますが、ただし、SDK では事前にキャッシュに保存された 長い道のりです。

データ

出発前にジャーニー内のすべての停車地/目的地を取得できますか? 経路は何でしょうか。

はい。Android でルートの経路を取得するには、 Navigator.getRouteSegments()

iOS の場合は、GMSNavigator.routeLegs(read) を呼び出します。

経路の始点にターンバイターンのルート案内を利用できますか?
はい。Navigation SDK には、ルート セグメントのリストが用意されています。 また、ドライバーはヘッダーの経路カードをスワイプできます。 確認しましょう
到着予定時刻はアプリのユーザーにどのように通知されますか?

Android でアプリのユーザーに到着予定時刻を知らせる手順は次のとおりです。

  1. を使用してすべてのウェイポイントの時間と距離を取得する Navigator.getTimeAndDistanceList()
  2. クライアント アプリケーションに転送する際は、 大きく影響します

iOS でアプリのユーザーに到着予定時刻を知らせる手順は次のとおりです。

  1. 次を使用してジャーニーの区間を取得します。 Navigator.getRouteSegments()
  2. 乗車区間ごとに GMSNavigator.timeToNextDestination を呼び出します。
  3. クライアント アプリケーションに 大きく影響します
RoadSnappedLocationProvider を使用して、ドライバの ナビゲーションがフォアグラウンドでない場合、現在のスナップ位置は?

はい。Android では、RoadSnappedLocationProvider は 使用されます。

iOS でナビゲーションをバックグラウンドで実行し続けるには、リスナーを実装します。 GMSRoadSnappedLocationProviderListener に対して、 プロパティ allowsBackgroundLocationUpdatesTRUE に設定します。

Navigation SDK はジオフェンスをサポートしていますか?

いいえ。ナビゲーションのコンテキストでは、remainingTimeOrdistanceChangeListener 単純なジオフェンスより有利です。ジオフェンスで ため、実際の地点に正確な中心が 運転手が移動中かどうかがわかります。

この機能に近似するには、 remainingTimeOrdistanceChangeListener

  1. しきい値を設定して、コールバックの頻度を決定します。
  2. 目的地までの残りの距離を確認します。

たとえばしきい値を 100m に設定すると デスティネーションまでの距離が変化したときにコールバックを受け取る 100m 延びています。距離が短くなると、このしきい値をより小さな値に コールバックが頻繁に発生しています。次に 残りの距離を調べて 乗車場所または降車場所から十分近くにあるかを判断してください。

iOS でリスナー GMSNavigatorListener.didUpdateRemainingDistance を実装します。 通知間の距離を管理できます。

ナビゲーション アプリがバックグラウンドのときに通知を無効にすることはできますか?

はい。Android では、Navigator.setHeadsUpNotificationEnabled を使用します。 通知を管理します。このメソッドにはブール値の引数があります。FALSE 通知を無効にします。TRUE は通知を有効にします。

iOS の場合、次の方法で道路スナップされた場所のバックグラウンド通知を無効にします GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates の設定 変更します。

その他の位置情報に関する通知のバックグラウンド処理を無効にするには、 GMSNavigator.sendsBackgroundNotifications(NO)

UI のカスタマイズ

最適なルートのオプションを色分けすることはできますか?
いいえ。現時点では、特定の経路オプションを色分けすることはできません。
Navigation SDK で最終目的地の到着予定時刻を表示できますか?

はい。Android では、次のメソッドを使用します。

  1. を使用してすべてのウェイポイントの時間と距離を取得する Navigator.getTimeAndDistanceList()
  2. 現在のウェイポイントの到着予定時刻を非表示にするには、 NavigationFragment.setEtaCardEnabled(false)
  3. 最終目的地の到着予定時刻をレンダリングする。

iOS では次のように記述します。

  1. GMSNavigator.routeLegs(read) を呼び出します。
  2. 最後の行程では、 GMSNavigator.timeToNextDestination
  3. 現在のウェイポイントの到着予定時刻を非表示にするには、 MSMapView.settings.navigationFooterEnabled=NO を FALSE に変更します。
  4. 最終目的地の到着予定時刻をレンダリングする。
到着予定時刻の更新情報を非表示にするにはどうすればよいですか?

到着予定カードは次の方法で無効にできます。

  • Android では、navigationView.setEtaCardEnabled(false) を使用します。
  • iOS では、GMSMapView.settings.navigationFooterEnabled=NO を使用します。
ヘッダーカードとフッターカードでは、どのような UI をカスタマイズできますか?

Android では、StylingOptions を使用して背景を設定します。 カラースタイルですヘッダーの表示と非表示を切り替えるには、 使用する場合は、setHeaderEnabled と 次の setFooterEnabled メンバー関数: NavigationFragment

iOS では、次のコマンドを使用します。 GMSMapView.settings.navigationHeaderPrimaryBackgroundColor 背景色のスタイルを設定しますヘッダーとフッターの表示と非表示を切り替える navigationFooterEnabled を使用する および GMSUISettingsnavigationHeaderEnabled プロパティ。

ルーティング

特定のルートを指定できますか? 代替ルートを削除しますか?
いいえ。デフォルトでは、複数のルートが提供され、最速ルートが優先されます。 「回避」などの設定を追加することで、デフォルト ルートに影響を与える 高速道路や有料道路など追加できます地点の追加はルートにも影響します。
デスティネーションとしてデフォルトとは異なるラベルをアプリユーザーに表示できますか? 目的地はどこか?

はい。Android では、Marker を作成します。 目的地のカスタム タイトルと緯度と経度。「 Navigation SDK がカスタム タイトルと座標を表示する NavigationMap

iOS では、デスティネーションの GMSMarker を作成して表示します。

Navigation SDK を使用して、定義されたパスからの逸脱を追跡できますか?

はい。Android では、Navigator.setRouteChangedListener を使用して以下を行います。 ルートが変更された場合や新しいルートが推奨される場合に、通知を受け取ることができます。

  1. ルート上のデバイスの位置をチェックするリスナーを登録する Navigator.setRouteChangedListener メソッドを使用します。
  2. コールバック イベント ハンドラ onRouteChanged にコードを追加します。
    • 更新された到着予定時刻と距離情報を含むメッセージをアプリのユーザーに送信します。
    • デバイスの位置情報を追跡します。
    • [省略可] アプリが処理できるよう、その他の機能を追加してください 運転手が所定のルートから外れたとき。

iOS では、GMSNavigator とそのリスナーを使用して以下を行います。 ルートが変更された場合や新しいルートが推奨される場合に、通知を受け取ることができます。

  1. 地図のビュー コントローラで、GMSNavigatorListener を実装します。 GMSRoadSnappedLocationProviderListener プロトコルの 2 つがあります。
  2. 導入 GMSNavigatorListener.navigatorDidChangeRoute
  3. routeLegs を使用して新しいルートにアクセスします。 GMSNavigatorcurrentRouteLeg プロパティ。
ドライバーはルートを完了せずにナビを終了できますか?

はい。Android では、Navigator.stopGuidance() メソッドを呼び出して、 ナビを停止して

iOS の場合は、GMSNavigator.clearDestinations を呼び出します。

シミュレータ

シミュレーターはルートの変更に対応していますか?

はい。Android で simulateLocationsAlongNewRoute を呼び出して、 ルート変更を含む移動をシミュレートします。simulateLocationsAlongExistingRoute メソッドは既存のルートへの変更を無視します。

iOS の場合は、GMSLocationSimulator.simulateAlongNewRouteToDestinations を使用します。 を使用して、ルート変更を含む移動をシミュレートします。予測が GMSLocationSimulator.simulateLocationsAlongExistingRoute を使用するか、ルートの変更後に GMSLocationSimulator.simulateAlongNewRouteToDestinations

Workflows

スペースを含むアクティビティを終了した後に通知を閉じるにはどうすればよいですか? どうでしょうか。

ナビゲーション通知は、ナビゲーション中も表示されたままになりますが、 トリガーされます。車両が ナビゲーションが停止し、通知が消えます。

通知のクリックを処理するには、Navigator.startGuidance(intent resumeIntent) を使用します。 resume intent は、アプリユーザーが通知をクリックすると起動されます。 通常、Navigator.startguidance(getIntent()) は、 メイン アクティビティ: アプリユーザーが通知をクリックすると、アクティビティを呼び出します。