常見問題

產品特性

問題

網路

資料

UI 自訂

轉送

模擬工具

工作流程

產品特性

您的應用程式必須實作含有 Navigation SDK 條款的對話方塊 所有司機都必須接受的服務通知。這個對話方塊會提供驅動程式 您必須同意《服務條款》。字詞的文字檔案 內建 Navigation SDK
在 Android 中,使用 NavigationApi.showTermsAndConditionsDialog 方法,以顯示含有字詞的對話方塊。
,瞭解如何調查及移除這項存取權。
若在 iOS 中,請致電 GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
Google 地圖行動版支援的所有語言都會自動 適用於 Navigation SDK 裝置採用預設系統語言,且應用程式無法變更該設定。不過 應用程式提供超過 70 種語言。

可以。在 Android 中,啟動後 LocationListener 會繼續 在背景中執行您的應用程式會繼續靠邊對齊,並維持

在 iOS 中,可持續接收位置更新通知。 在背景中,實作道路貼齊 allowsBackgroundLocationUpdatesYES

可以。建立或變更路徑時,RouteChangeListener 可提供折線。

不需要,Navigation SDK 不需要 Google Maps Mobile 安裝到裝置上。
否,Navigation SDK 不提供這項功能 讓應用程式從可以最快做出回應的位置 回應使用者要求
可以。根據預設,系統會顯示車流量方向。
哪個 Navigation SDK API 是否僅供行動性服務客戶使用?

Navigation SDK 中有些 API 僅供行動性服務客戶使用,Google 會根據每筆交易收費。如果您不是行動管理服務的客戶,則以下為免人工管理的方法:

問題

在 Xcode 12 中,無法正確建構要用於模擬工具的應用程式,如何修復此問題?

如要解決這個問題,請開啟 Xcode 專案版本設定,然後只針對「iOS 模擬工具」版本,將 arm64 新增到 Excluded Architectures

詳情請參閱下列 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,並設定 將屬性 allowsBackgroundLocationUpdates 重新命名為 TRUE

Navigation SDK 支援地理圍欄嗎?

否。在導覽中,remainingTimeOrdistanceChangeListener 具有比單純的地理圍欄優勢地理圍欄可能未考量到 道路幾何圖形,可能無法以 駕駛正在導航。

您可以使用 remainingTimeOrdistanceChangeListener

  1. 設定門檻以決定回呼的頻率。
  2. 查看前往目的地的剩餘距離。

舉例來說,如果您將門檻設為 100 公尺 您與目的地之間的距離變更時,您就會收到回呼 大約需要 100 公尺隨著距離逐漸下降,您可以將這個閾值更新為較小的 值,並更頻繁地收到回呼。接著再檢查剩餘的距離 判斷你能否靠近上車/下車地點。

在 iOS 中,導入事件監聽器 GMSNavigatorListener.didUpdateRemainingDistance 管理通知之間的距離。

導航應用程式在背景執行時,我可以停用通知功能嗎?

可以。在 Android 中,使用 Navigator.setHeadsUpNotificationEnabled 控管通知。這個方法包含布林值引數。FALSE 停用通知;TRUE 會啟用通知。

在 iOS 上, 正在設定「GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates」 改為 NO

如要停用其他位置資訊通知的背景處理功能,請撥打 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
頁首和頁尾資訊卡提供哪些使用者介面自訂設定?

在 Android 中,您可以使用 StylingOptions 來設定背景 色彩樣式如要隱藏或顯示頁首和 頁尾,請使用 setHeaderEnabledsetFooterEnabled 個成員函式 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. 導入設定 GMSNavigatorListener.navigatorDidChangeRoute
  3. 使用 routeLegsGMSNavigatorcurrentRouteLeg 屬性。
駕駛是否能在不完成路線的情況下退出導航?

可以。在 Android 中,呼叫 Navigator.stopGuidance() 方法即可 停止導航。

在 iOS 中,呼叫 GMSNavigator.clearDestinations

模擬工具

模擬工具支援路線變更嗎?

可以。在 Android 中,呼叫 simulateLocationsAlongNewRoute 即可 模擬包含路線變化的歷程。simulateLocationsAlongExistingRoute 方法會忽略現有路徑的變更。

在 iOS 中,請使用 GMSLocationSimulator.simulateAlongNewRouteToDestinations 模擬包含路線變化的歷程。如果您不預期 任何路線改變時,您可以使用 GMSLocationSimulator.simulateLocationsAlongExistingRouteGMSLocationSimulator.simulateAlongNewRouteToDestinations

工作流程

如何在關閉含有 導覽片段?

導航期間,導航通知會保持顯示。 活動關閉時。車輛抵達 目的地、導航停止,且通知就會消失。

如要處理通知的點擊,請使用 Navigator.startGuidance(intent resumeIntent)resume intent 會在應用程式使用者點選通知時觸發。 一般而言,Navigator.startguidance(getIntent()) 是從 主要 Activity,也就是應用程式使用者點選通知時的活動。