よくある質問
商品情報
- Navigation SDK 利用規約の通知はどのように表示するべきですか?
- 音声案内はどの言語に対応していますか?
- ドライバーがナビゲーション モードを終了しても方向は維持されますか?
- ルートの開始時や変更時にポリラインを使用できますか?
- アプリのユーザーは、モバイル版 Google マップをインストールする必要がありますか?
- Navigation SDK でレストランやその他の目的地付近の駐車場を識別できますか?
- Navigation SDK は、曲がり角に近づいたときに車線の進行方向を表示しますか?
ネットワーク
データ
- ルートを開始する前に、ルート内のすべての停車地や目的地を取得できますか?
- ルートの始点でターンバイターンのルート案内を利用できますか?
- 到着予定時刻(ETA)はアプリのユーザーにどのように通知されますか?
- ナビゲーションがフォアグラウンドにない場合、
RoadSnappedLocationProvider
を使用してドライバーの現在のスナップ位置を取得できますか? - Navigation SDK はジオフェンスをサポートしていますか?
- ナビゲーション アプリがバックグラウンドで実行されているときに通知を無効にできますか?
- Google が保持しているトランザクションのログを確認するにはどうすればよいですか?
UI のカスタマイズ
- 最適なルート オプションを色分けできますか?
- Navigation SDK は最終目的地への到着予定時刻を表示できますか?
- 到着予定の更新を非表示にするにはどうすればよいですか?
- ヘッダーカードとフッターカードでどのような UI をカスタマイズできますか?
ルーティング
- 特定のルートをドライバーに提供したり、代替ルートを削除したりできますか?
- デフォルトの目的地とは異なるラベルをドライバーに表示できますか?
- Navigation SDK を使用して、定義したパスからの逸脱を追跡できますか?
- ドライバーはルートを完了せずにナビゲーションを終了できますか?
シミュレータ
Workflows
商品情報
- アプリに、各ドライバが同意する必要がある Navigation SDK 利用規約の通知を表示するダイアログ ボックスを実装する必要があります。このダイアログ ボックスは、ドライバーが利用規約に同意する機会を提供します。用語のテキスト ファイルは Navigation SDK に付属しています。
- Android では、
NavigationApi.showTermsAndConditionsDialog
メソッドを使用して、キーワードを含むダイアログ ボックスを表示します。 - iOS の場合は、
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
を呼び出します。 - モバイル版 Google Maps Platform でサポートされている言語はすべて、Navigation SDK でも自動的に使用可能になります。デバイスにデフォルトのシステム言語があり、アプリはその設定を変更できません。ただし、アプリは 70 を超える言語にアクセスできます。
-
はい。Android では、いったん起動すると
LocationListener
はバックグラウンドで実行され続けます。アプリは道路のスナップを続けて位置を維持し、iOS で、位置と方角の位置情報の更新をバックグラウンドで引き続き受け取るには、道路スナップを実装し、
allowsBackgroundLocationUpdates
をYES
に設定します。 -
はい。ルートが作成または変更されると、
RouteChangeListener
によってポリラインが提供されます。 - いいえ。Navigation SDK を使用する場合、Google Maps Mobile をデバイスにインストールする必要はありません。
- いいえ。現時点では、Navigation SDK にこの機能はありません。
- はい。トラフィックの方向はデフォルトで使用可能で、表示されます。
ネットワーク
- Navigation SDK は接続不良をどのように処理しますか?
- Navigation SDK は、各経路のルートを事前にキャッシュに保存します。事前にキャッシュに保存された情報には、15 ~ 20 分間のルート情報と、ドライバーがルートから逸脱した場合の代替ルートが含まれます。Navigation SDK は、デバイスの GPS とセンサーを使用して位置を推定します。
- オフライン モードはありますか?
- いいえ。現時点で Navigation SDK はオフライン モードを提供していません。ただし、SDK はジャーニーに関する事前キャッシュされた情報を提供します。
データ
- ルートを開始する前に、ルート内のすべての停車地や目的地を取得できますか?
-
はい。Android でルートの経路を取得するには、
Navigator.getRouteSegments()
を呼び出します。iOS の場合は、
GMSNavigator.routeLegs(read)
を呼び出します。 - ルートの始点でターンバイターンのルート案内を利用できますか?
- はい。Navigation SDK は、ルート セグメントのリストを提供します。また、運転手はヘッダーの経路カードをスワイプして、それぞれの運転を確認できます。
- 到着予定時間はアプリのユーザーにどのように通知されますか?
-
Android でアプリのユーザーに到着予定時刻を知らせる手順は次のとおりです。
Navigator.getTimeAndDistanceList()
を使用してすべての地点の時間と距離を取得します。- 現在のドライバの到着予定時刻と同様に、この情報をクライアント アプリケーションに転送します。
iOS でアプリのユーザーに到着予定時刻を知らせる手順は次のとおりです。
-
Navigator.getRouteSegments()
を使用してジャーニーの区間を取得します。 - 乗車区間ごとに
GMSNavigator.timeToNextDestination
を呼び出します。 - ドライバの ETA について現在行っているように、時刻情報をクライアント アプリケーションに転送します。
-
ナビゲーションがフォアグラウンドにない場合、
RoadSnappedLocationProvider
を使用してドライバーの現在のスナップ位置を取得できますか? -
はい。Android では、
RoadSnappedLocationProvider
はデフォルトでバックグラウンドで実行されます。iOS でナビゲーションをバックグラウンドで実行し続けるには、
GMSRoadSnappedLocationProviderDelegate
のデリゲートを実装し、プロパティallowsBackgroundLocationUpdates
をTRUE
に設定します。 - Navigation SDK はジオフェンスをサポートしていますか?
-
いいえ。ナビゲーションのコンテキストでは、
remainingTimeOrdistanceChangeListener
は単純なジオフェンスよりも優れています。ジオフェンスでは道路の形状が考慮されておらず、ドライバーがナビゲーションしている地点の中心にジオフェンスが表示されない場合があります。この機能は、
remainingTimeOrdistanceChangeListener
を使用して近似できます。- しきい値を設定して、コールバックの頻度を決定します。
- 目的地までの残りの距離を確認します。
たとえば、しきい値を 100 m に設定した場合、目的地までの距離が 100 m 変化したときにコールバックを受け取ります。距離が離れるにつれ、このしきい値を小さい値に更新して、コールバックを頻繁に受信できます。残りの距離を調べて、乗車場所から降車する場所まで十分に近くにあるかどうかを判断します。
iOS では、デリゲート
GMSNavigatorDelegate.didUpdateRemainingDistance
を実装して通知間の距離を管理します。 - ナビゲーション アプリがバックグラウンドで動作しているときに、通知を無効にできますか?
-
はい。Android では、
Navigator.setHeadsUpNotificationEnabled
を使用して通知を制御します。このメソッドにはブール値の引数があります。FALSE
は通知を無効にし、TRUE
は通知を有効にします。iOS では、
GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates
を NO に設定して、道路に邪魔された場所のバックグラウンド通知を無効にします。その他の位置情報通知のバックグラウンド処理を無効にするには、
GMSNavigator.sendsBackgroundNotifications(NO)
を呼び出します。 -
トランザクション レコーダーは、一意の ID で乗車と降車をトラッキングします。Google は、この ID を請求目的で記録します。詳細については、ご使用のプラットフォームの実装テスト手順をご覧ください。
請求トランザクションのコーディングの側面については、 請求対象トランザクションをご覧ください。
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
とそのデリゲートを使用して、ルートが変更されたとき、または新しいルートが推奨されたときに通知を受け取ることができます。- 地図のビュー コントローラで、
GMSNavigatorDelegate
プロトコルとGMSRoadSnappedLocationProviderDelegate
プロトコルを実装します。 GMSNavigatorDelegate.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())
はメイン アクティビティから呼び出されます。メイン アクティビティは、アプリのユーザーが通知をクリックするとアクティビティを呼び出します。