よくある質問
プロダクトの詳細
- Navigation SDK の利用規約に関する通知はどのように表示すればよいですか?
- 音声ガイドはどの言語に対応していますか?
- ドライバーがナビゲーション モードを終了したときに、方位は維持されますか?
- ルートの開始時や変更時にポリラインは利用できますか?
- アプリのユーザーは Google マップ モバイルをインストールする必要がありますか?
- Navigation SDK でレストランなどの目的地付近の駐車場を特定できますか?
- Navigation SDK は、曲がり角に近づくと車線の交通方向を表示しますか?
問題
ネットワーク
データ
- ルートを開始する前に、ルート内のすべての経由地/目的地を取得できますか?
- ルートの開始時にターンバイターン方式のルート案内は利用できますか?
- 到着予定時刻(ETA)はアプリユーザーにどのように伝えられますか?
- ナビゲーションがフォアグラウンドにない場合、
RoadSnappedLocationProvider
を使用してドライバーの現在のスナップされた位置情報を取得できますか? - Navigation SDK はジオフェンシングをサポートしていますか?
- ナビゲーション アプリがバックグラウンドで動作しているときに通知を無効にできますか?
UI のカスタマイズ
- 最適なルート オプションを色分けできますか?
- Navigation SDK で最終目的地の到着予定時刻を表示できますか?
- 到着予定時刻の更新を非表示にするにはどうすればよいですか?
- ヘッダーカードとフッターカードで利用できる UI のカスタマイズはどれですか?
ルーティング
- ドライバーに特定のルートを指定したり、代替ルートを削除したりできますか?
- デフォルトの目的地とは異なるラベルをドライバーに表示できますか?
- Navigation SDK を使用して、定義されたパスからの逸脱を追跡できますか?
- ルートを完了せずにナビゲーションを終了できますか?
シミュレータ
Workflows
モビリティ サービス
- モビリティ サービスのお客様が Navigation SDK を使用する場合、どのような違いがありますか?
- モビリティ サービスのお客様かどうかを確認するにはどうすればよいですか?
- モビリティ サービスのお客様に対する Navigation SDK の課金方法はどのようになっていますか?
- モビリティ サービスのお客様のみが使用すべき Navigation SDK API はどれですか?
- モビリティ サービスのお客様は、Navigation SDK のモビリティ サービス以外の実装も使用できますか?
プロダクトの詳細
- アプリでは、各ドライバーが同意する必要がある 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 にこの機能はありません。
- はい。トラフィックの方向はデフォルトで表示されます。
問題
- Xcode 12 で、アプリがシミュレータ用に正しくビルドされません。どうすればよいですか?
-
この問題を解決するには、Xcode プロジェクトのビルド設定を開き、「iOS Simulator」ビルドについてのみ
Excluded Architectures
にarm64
を追加します。詳細については、次の 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 は、ルート セグメントのリストを提供します。また、ヘッダーのルート案内カードをスワイプして、各操作を確認することもできます。
- アプリユーザーに ETA はどのように伝えられますか?
-
Android では、次の手順でアプリユーザーに到着予定時刻の情報を伝えます。
Navigator.getTimeAndDistanceList()
を使用して、すべての経由地の時間と距離を取得します。- ドライバーの到着予定時刻と同様に、この情報をクライアント アプリケーションに転送します。
iOS でアプリのユーザーに到着予定時刻を伝える手順は次のとおりです。
-
Navigator.getRouteSegments()
を使用して、ジャーニーのレッグを取得します。 - 各ジャーニー レッグに対して
GMSNavigator.timeToNextDestination
を呼び出します。 - ドライバーの到着予定時刻と同様に、時間情報をクライアント アプリケーションに転送します。
-
ナビゲーションがフォアグラウンドにない場合、
RoadSnappedLocationProvider
を使用してドライバーの現在地のスナップされた位置情報を取得できますか? -
はい。Android では、
RoadSnappedLocationProvider
はデフォルトでバックグラウンドで実行されます。iOS でナビゲーションをバックグラウンドで実行し続けるには、
GMSRoadSnappedLocationProviderListener
のリスナーを実装し、プロパティallowsBackgroundLocationUpdates
をTRUE
に設定します。 - Navigation SDK はジオフェンシングをサポートしていますか?
-
いいえ。ナビゲーションのコンテキストでは、
remainingTimeOrdistanceChangeListener
はジオフェンスよりも優れています。ジオフェンスは道路の形状を考慮していない可能性があり、ドライバーがナビゲーションしている正確な地点を中心としていない可能性があります。この機能は、
remainingTimeOrdistanceChangeListener
を使用して近似できます。- コールバックの頻度を決定するしきい値を設定します。
- 目的地までの残りの距離を確認します。
たとえば、しきい値を 100 m に設定すると、目的地までの距離が 100 m 変化したときにコールバックを受け取ります。距離が短くなると、このしきい値を小さい値に更新して、コールバックの頻度を増やすことができます。次に、残りの距離を確認して、乗車/降車場所に十分近いかどうかを判断します。
iOS では、リスナー
GMSNavigatorListener.didUpdateRemainingDistance
を実装して、通知間の距離を管理します。 - ナビゲーション アプリがバックグラウンドで動作しているときに通知を無効にできますか?
-
はい。Android では、
Navigator.setHeadsUpNotificationEnabled
を使用して通知を制御します。このメソッドにはブール値の引数があります。FALSE
は通知を無効にし、TRUE
は通知を有効にします。iOS では、
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
を NO に設定して、道路にスナップされた位置情報のバックグラウンド通知を無効にします。他の位置情報通知のバックグラウンド処理を無効にするには、
GMSNavigator.sendsBackgroundNotifications(NO)
を呼び出します。
UI のカスタマイズ
- 最適なルート オプションを色分けできますか?
- いいえ。現時点では、特定のルート オプションの色分けはサポートされていません。
- Navigation SDK で最終目的地の到着予定時刻を表示できますか?
-
はい。Android では、次のメソッドを使用します。
Navigator.getTimeAndDistanceList()
を使用して、すべての経由地の時間と距離を取得します。NavigationFragment.setEtaCardEnabled(false)
を使用して、現在の経由地の到着予定時刻を非表示にします。- 最終目的地の到着予定時刻をレンダリングします。
iOS では、次のものを使用します。
GMSNavigator.routeLegs(read)
を呼び出します。- 最後のレッグでは、
GMSNavigator.timeToNextDestination
を呼び出します。 MSMapView.settings.navigationFooterEnabled=NO
を FALSE に設定して、現在の経由地の ETA を非表示にします。- 最終目的地の到着予定時刻をレンダリングします。
- 到着予定時刻の更新を非表示にするにはどうすればよいですか?
-
到着予定時刻カードは、次の方法で無効にできます。
- Android では、
navigationView.setEtaCardEnabled(false)
を使用します。 - iOS では、
GMSMapView.settings.navigationFooterEnabled=NO
を使用します。
- Android では、
-
Android では、
StylingOptions
を使用して背景色のスタイルを設定します。ヘッダーとフッターを非表示または表示するには、NavigationFragment
のsetHeaderEnabled
メンバー関数とsetFooterEnabled
メンバー関数を使用します。iOS では、
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
を使用して背景色のスタイルを設定します。ヘッダーとフッターの表示 / 非表示を切り替えるには、GMSUISettings
のnavigationFooterEnabled
プロパティとnavigationHeaderEnabled
プロパティを使用します。
ルーティング
- 運転手に特定のルートを指定したり、代替ルートを削除したりできますか?
- いいえ。デフォルトでは複数のルートが提供され、最も速いルートが優先されます。リクエストに「高速道路と有料道路を避ける」などの設定を追加することで、デフォルトのルートに影響を与えることができます。経由地を追加すると、ルートにも影響します。
- アプリユーザーに、デフォルトの目的地とは異なるラベルを表示できますか?
-
はい。Android では、デスティネーションのカスタム タイトルと緯度/経度を使用して
Marker
を作成します。Navigation SDK は、NavigationMap
にカスタム タイトルと座標を表示します。iOS では、移行先の
GMSMarker
を作成して表示します。 - Navigation SDK を使用して、定義されたパスからの逸脱を追跡できますか?
-
はい。Android では、
Navigator.setRouteChangedListener
を使用して、ルートが変更されたときや新しいルートが推奨されたときに通知を受け取ります。Navigator.setRouteChangedListener
メソッドを使用して、ルートに沿ったデバイスの位置を確認するリスナーを登録します。- コールバック イベント ハンドラ
onRouteChanged
にコードを追加します。- 更新された到着予定時刻と距離の情報をアプリユーザーにメッセージで送信します。
- デバイスの位置を追跡します。
- [省略可] ドライバーが規定のルートから外れたときに処理するために、アプリに必要な他の機能を追加します。
iOS では、
GMSNavigator
とそのリスナーを使用して、ルートが変更されたときや新しいルートが推奨されたときに通知を受け取ります。- 地図のビュー コントローラで、
GMSNavigatorListener
プロトコルとGMSRoadSnappedLocationProviderListener
プロトコルを実装します。 GMSNavigatorListener.navigatorDidChangeRoute
を実装します。GMSNavigator
のrouteLegs
プロパティとcurrentRouteLeg
プロパティを使用して、新しいルートにアクセスします。
-
はい。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())
はメイン アクティビティから呼び出され、アプリユーザーが通知をクリックするとアクティビティを呼び出します。
モビリティ サービス
Google Maps Platform モビリティ サービスは、運輸業や物流業の企業のニーズに対応するための API と SDK のコレクションを提供します。モビリティ サービスのお客様の場合、Navigation SDK は通常、ルートの最適化、配送、タスクの追跡、フリート分析などの関連サービスと組み合わせて使用されます。Navigation SDK の料金は、モビリティ サービスのお客様に対しては別の方法で請求されます。詳細については、モビリティ サービスのドキュメントをご覧ください。
モビリティ プロダクトは、一部のお客様のみご利用いただけます。詳しくは、営業担当者にお問い合わせください。
ReportBillableEvent
呼び出しを探してください。ReportBillableEvent
メソッドを呼び出すのは、モビリティ サービスのお客様のみです。
Navigation SDK には、モビリティ サービスのお客様のみが使用することを想定した API がいくつかあります。これらの API を使用すると、Google から取引ごとに請求されます。モビリティ サービスのお客様でない場合、次のメソッドは no-op です。
はい。モビリティ サービスのお客様は、Navigation SDK のモビリティ サービス実装と非モビリティ サービス実装の両方を使用できます。ただし、アプリで一度に使用できる実装タイプは 1 つのみです。また、モビリティ サービスの実装で使用しているものとは別に、新しい Google Cloud プロジェクト、請求先アカウント、API キーを作成する必要があります。詳しくは、Navigation SDK のセットアップの概要をご覧ください。
Navigation SDK の Mobility Services 以外の実装の使用(実装タイプ間のアプリの移行など)について詳しくは、Google アカウントの担当者にお問い合わせください。
注: モビリティ サービスのお客様ではなく、モビリティ サービスの API と SDK のコレクションについて詳しく知りたい場合は、Google Maps Platform の営業担当者にお問い合わせください。