よくある質問
プロダクトの詳細
- 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 は Mobility Services のお客様のみが使用する必要がありますか?
- Mobility Services をご利用の場合、Mobility Services 以外の実装の 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 にはオフライン モードはありません。ただし、ルートの事前キャッシュされた情報は提供されます。
データ
- ルートを開始する前に、ルートのすべての停留所/目的地を取得できますか?
-
はい。Android でルートの経路を取得するには、
Navigator.getRouteSegments()
を呼び出します。iOS では、
GMSNavigator.routeLegs(read)
を呼び出します。 - ルートの開始時にターンバイターン方式のルート案内を利用できますか?
- はい。Navigation SDK は、ルート セグメントのリストを取得します。また、ヘッダーのルート案内カードをスワイプすると、各操作を確認できます。
- アプリユーザーにはどのように所要時間が通知されますか?
-
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 の料金が異なります。詳細については、Mobility Services のドキュメントをご覧ください。
モビリティ サービスは現在、一部のお客様のみご利用いただけます。詳しくは、営業担当者にお問い合わせください。
ReportBillableEvent
呼び出しを探してください。ReportBillableEvent
メソッドを呼び出すのは、モビリティ サービスのお客様のみです。
Navigation SDK には、Mobility Services のお客様のみが使用できる API がいくつかあります。これらのお客様は、Google からトランザクションごとに請求されます。モビリティ サービスをご利用でない場合は、次の方法は使用できません。
はい。モビリティ サービスのお客様は、モビリティ サービスとモビリティ サービス以外の実装の両方で Navigation SDK を使用できます。ただし、アプリで一度に使用できる実装タイプは 1 つのみです。また、Mobility Services の実装で使用するものとは別に、新しい Google Cloud プロジェクト、請求先アカウント、API キーを作成する必要があります。詳細については、Navigation SDK のセットアップの概要をご覧ください。
ナビゲーション SDK の Mobility Services 以外の実装の使用について詳しくは、アプリを 1 つの実装タイプから別の実装タイプに移行する方法など、Google アカウント担当者にお問い合わせください。
注: 現在モビリティ サービスのお客様で、モビリティ サービスの API と SDK のコレクションについて詳しくお知りになりたい場合は、Google Maps Platform の営業担当者にお問い合わせください。