よくある質問

プロダクトの詳細

問題

ネットワーク

データ

UI のカスタマイズ

ルーティング

シミュレータ

Workflows

モビリティ サービス

プロダクトの詳細

アプリは、各ドライバーが同意する必要がある Navigation SDK の利用規約に関する通知を含むダイアログを実装する必要があります。このダイアログでは、ドライバー が利用規約に同意できます。利用規約のテキスト ファイルは Navigation SDK に付属しています。
Android では、NavigationApi.showTermsAndConditionsDialog メソッドを使用して、利用規約を含むダイアログを表示します。
iOS では、GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName を呼び出します。
Google マップ モバイルでサポートされている言語は、Navigation SDK で自動的に利用できます。 デバイスにはデフォルトのシステム言語が設定されており、アプリはその設定を変更できませんが、アプリは 70 以上の言語にアクセスできます。

はい。Android では、LocationListener は一度開始するとバックグラウンドで実行され続けます。アプリは引き続き位置を道路にスナップし、方位を維持します。

iOS で、位置と方位の位置情報の更新をバックグラウンドで引き続き受信するには、道路へのスナップを実装し、allowsBackgroundLocationUpdatesYES に設定します。

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

いいえ。Navigation SDK では、デバイスに Google マップ モバイルをインストールする必要はありません。
いいえ。Navigation SDK は現時点ではこの機能を提供していません。
はい。交通方向はデフォルトで利用可能で、表示されます。

問題

Xcode 12 で、アプリがシミュレータ用に正しくビルドされません。解決するにはどうすればよいですか?

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

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

GMSMapView が読み込まれません。

GMSMapView が読み込まれない場合は、次の操作を行います。

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

ネットワーク

Navigation SDK は接続状態が悪い場合にどのように処理しますか?
Navigation SDK は、移動ごとにルートを事前にキャッシュに保存します。 事前にキャッシュに保存される情報には、15 ~ 20 分間のルーティング情報と、ドライバーがルートから逸脱した場合の代替ルートが含まれます。Navigation SDK は、デバイスの GPS と センサーを使用して位置を推定します。
オフライン モードはありますか?
いいえ。Navigation SDK は現時点ではオフライン モードを提供していませんが、移動に関する事前にキャッシュに保存された情報を提供しています。

データ

ルートを開始する前に、移動のすべての停車地/目的地を取得できますか?

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

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

ルートの開始時にターンバイターン方式のルート案内を利用できますか?
はい。Navigation SDK はルートセグメントのリストを提供します。 また、ドライバーはヘッダーの経路カードをスワイプして、各操作を確認できます。
ETA はアプリのユーザーにどのように伝えられますか?

Android で、ETA 情報をアプリのユーザーに提供するには、次の手順を行います。

  1. Navigator.getTimeAndDistanceList() を使用して、すべての地点の時間と距離を取得します。
  2. ドライバーの ETA と同様に、この情報をクライアント アプリケーションに転送します。

iOS で、ETA 情報をアプリのユーザーに提供するには、次の手順を行います。

  1. 移動の区間を取得します。 Navigator.getRouteSegments().
  2. 移動の区間ごとに GMSNavigator.timeToNextDestination を呼び出します。
  3. ドライバーの ETA と同様に、時間情報をクライアント アプリケーションに転送します。
ナビゲーションがフォアグラウンドにない場合、RoadSnappedLocationProvider を使用してドライバーの現在のスナップ位置を取得できますか?

はい。Android では、RoadSnappedLocationProvider は バックグラウンドでデフォルトで実行されます。

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

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

いいえ。ナビゲーションのコンテキストでは、remainingTimeOrdistanceChangeListener はジオフェンスよりも優れています。ジオフェンスは 道路の形状を考慮していない可能性があり、ドライバーがナビゲーションしている正確な地点を中心としていない可能性があります。

remainingTimeOrdistanceChangeListener を使用して、この機能を近似できます。

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

たとえば、しきい値を 100 m に設定すると、目的地までの距離が 100 m 変化したときにコールバックを受け取ります。距離が短くなるにつれて、このしきい値を小さい 値に更新し、より頻繁にコールバックを受け取ることができます。次に、残りの距離を調べて、乗車/降車地点に十分に近いかどうかを判断します。

iOS では、リスナー GMSNavigatorListener.didUpdateRemainingDistance を実装して、通知の間隔を管理します。

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

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

iOS では、 を NO に設定して、道路にスナップされた位置情報のバックグラウンド通知を無効にします。GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates

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

UI のカスタマイズ

最適ルート オプションを色分けできますか?
いいえ。現時点では、特定のルート オプションの色分けはサポートされていません。
Navigation SDK は最終目的地の ETA を表示できますか?

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

  1. Navigator.getTimeAndDistanceList() を使用して、すべての地点の時間と距離を取得します。
  2. NavigationFragment.setEtaCardEnabled(false) を使用して、現在の地点の ETA を非表示にします。
  3. 最終目的地の ETA をレンダリングします。

iOS では、次のものを使用します。

  1. GMSNavigator.routeLegs(read) を呼び出します。
  2. 最後の区間で、 GMSNavigator.timeToNextDestination を呼び出します。
  3. MSMapView.settings.navigationFooterEnabled=NOを使用して、現在の地点の ETA を非表示にします。
  4. 最終目的地の ETA をレンダリングします。
ETA の更新を非表示にするにはどうすればよいですか?

次のメソッドを使用して、ETA カードを無効にできます。

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

Android では、StylingOptions を使用して背景色のスタイルを設定します。ヘッダーとフッターの表示 / 非表示を切り替えるには、NavigationFragmentsetHeaderEnabled メンバー関数と setFooterEnabled メンバー関数を使用します。

iOS では、 GMSMapView.settings.navigationHeaderPrimaryBackgroundColor を使用して背景色のスタイルを設定します。ヘッダーとフッターの表示 / 非表示を切り替えるには、navigationFooterEnablednavigationHeaderEnabled プロパティを使用します。GMSUISettings

ルーティング

ドライバーに特定のルート を提供したり、代替ルートを削除したりできますか?
いいえ。デフォルトでは複数のルートが提供され、最速ルートが優先されます。 リクエストに「高速道路と有料道路を避ける」などの設定を追加することで、デフォルトのルートに影響を与えることができます。地点を追加すると、ルートも変更されます。
アプリのユーザーに、デフォルト 目的地の位置とは異なるラベルを目的地に表示できますか?

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

iOS では、目的地の GMSMarker を作成して表示します。

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

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

  1. ルートに沿ってデバイスの位置を確認するリスナーを登録します Navigator.setRouteChangedListener メソッドを使用します。
  2. コールバック イベント ハンドラ onRouteChanged にコードを追加します。
    • 更新された ETA と距離の情報を含むメッセージをアプリのユーザーに送信します。
    • デバイスの位置を追跡します。
    • [省略可] ドライバーが指定されたルートから外れた場合に処理するために、アプリに必要なその他の機能を追加します。

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

  1. 地図のビュー コントローラで、GMSNavigatorListener プロトコルと GMSRoadSnappedLocationProviderListener プロトコルを実装します。
  2. を実装します。GMSNavigatorListener.navigatorDidChangeRoute
  3. GMSNavigatorrouteLegs プロパティと currentRouteLeg プロパティを使用して、新しいルートにアクセスします。
ドライバーはルートを完了せずにナビゲーションを終了できますか?

はい。Android では、Navigator.stopGuidance() メソッドを呼び出して ナビゲーションを停止します。

iOS では、GMSNavigator.clearDestinations を呼び出します。

Navigation SDK は、トラックや大型車両のルーティングとナビゲーションをサポートしていますか?

はい。大型車両向けルート検索(LVR)を使用すると、Routes API または Route Optimization API で生成されたトラック固有のルートトークンを Navigation SDK に渡すことができます。SDK は、ルートのコールアウト(高さ、重量、危険物、トラックの制限)を含むターンバイターン ナビゲーションを提供し、動的なルート変更中に車両の物理プロファイルを維持します。詳細については、大型車両のルートをナビゲーションするをご覧ください。

シミュレータ

シミュレータはルートの変更をサポートしていますか?

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

iOS では、GMSLocationSimulator.simulateAlongNewRouteToDestinations を使用して、ルートの変更を含む移動をシミュレートします。ルートの変更が予想されない場合は、GMSLocationSimulator.simulateLocationsAlongExistingRoute または GMSLocationSimulator.simulateAlongNewRouteToDestinations を使用できます。

Workflows

ナビゲーション フラグメントを含むアクティビティを閉じた後、通知を消去するにはどうすればよいですか?

ナビゲーション通知は、アクティビティが閉じられた場合でも、ナビゲーション中は表示されたままになります。車両が目的地に到着すると、ナビゲーションが停止し、通知が消えます。

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

モビリティ サービス

モビリティ サービスをご利用のお客様の場合、Navigation SDK の使用方法はどのように異なりますか?

Google Maps Platform モビリティ サービスは、運輸および物流業の企業のニーズをサポートする API と SDK のコレクションを提供します。モビリティ サービスをご利用のお客様の場合、Navigation SDK は通常、ルートの最適化、ディスパッチ、タスクの追跡、フリート分析などの関連サービスと組み合わせて使用されます。Navigation SDK の料金は、モビリティ サービスをご利用のお客様とそれ以外のお客様で異なります。詳細については、モビリティ サービスのドキュメントをご覧ください。

モビリティ プロダクトは、一部のお客様のみご利用いただけます。詳しくは、営業担当者にお問い合わせください。

自分がモビリティ サービスをご利用のお客様かどうかを確認するにはどうすればよいですか?
Navigation SDK をモビリティ サービスをご利用のお客様として実装しているかどうか不明な場合は、コードで ReportBillableEvent 呼び出しを探してください。ReportBillableEvent メソッドを呼び出す必要があるのは、モビリティ サービスをご利用のお客様のみです。

モビリティ サービスをご利用のお客様の場合、Navigation SDK の料金はどのように請求されますか?
モビリティ サービスをご利用のお客様の場合、Navigation SDK の料金と価格は、Google Maps Platform とのサービス契約によって異なります。モビリティ サービスの実装が正しく請求されていることを確認する方法については、課金の検証をご覧ください。モビリティ サービスの課金について詳しくは、営業担当者にお問い合わせください。

モビリティ サービスをご利用のお客様のみが使用すべき Navigation SDK API はどれですか?

Navigation SDK には、モビリティ サービスをご利用のお客様のみが使用することを目的とした API がいくつかあります。これらの API は、取引ごとに Google から請求されます。モビリティ サービスをご利用のお客様でない場合、次のメソッドは no-op です。

モビリティ サービスをご利用のお客様の場合、モビリティ サービス以外の Navigation SDK 実装も使用できますか?

はい。モビリティ サービスをご利用のお客様は、Navigation SDK のモビリティ サービスの実装とモビリティ サービス以外の実装の両方を使用できます。ただし、アプリで一度に使用できる実装タイプは 1 つだけです。また、モビリティ サービスの実装で使用するものとは別に、新しい Google Cloud プロジェクト、課金アカウント、API キーを作成する必要があります。詳細については、Navigation SDK のセットアップの概要をご覧ください。

モビリティ サービス以外の Navigation SDK 実装の使用方法(アプリをある実装タイプから別の実装タイプに移行する方法など)について詳しくは、Google アカウント担当者にお問い合わせください。

注: モビリティ サービスをご利用のお客様ではなく、モビリティ サービスの API と SDK のコレクションについて詳しく知りたい場合は、Google Maps Platform の営業担当者にお問い合わせください