常見問題

產品詳細資料

網路和連線能力

資料

UI 自訂

轉送

手機模擬器

Workflows

行動服務

產品詳細資料

應用程式必須導入對話方塊,顯示 Navigation SDK 服務條款通知,並要求每位使用者接受。使用者可透過這個對話方塊同意《服務條款》。Navigation SDK 隨附條款文字檔。使用 NavigationApi.showTermsAndConditionsDialog 方法顯示包含條款的對話方塊。
Navigation SDK 會自動支援 Google 地圖行動版支援的所有語言。
裝置有預設系統語言,應用程式無法變更該設定,但應用程式可存取 70 多種語言。

可以。啟動後,LocationListener 會繼續在背景執行。應用程式會繼續將位置貼齊道路,並維持方位。

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

不需要,Navigation SDK 不要求裝置安裝 Google 地圖行動版。
否,Navigation SDK 目前不提供這項功能。
可以。系統預設會顯示車流方向。
Navigation SDK 支援哪些版本的 JDK?
Navigation SDK 支援 Oracle 積極支援的 Java SE LTS 版本。在 Oracle Java SE 支援藍圖中,這些版本列為享有Premier Support。

網路和連線能力

Navigation SDK 如何處理網路連線不佳的問題?
Navigation SDK 會預先快取每趟行程的路線。 預先快取的資訊包括 15 到 20 分鐘的路線資訊,以及使用者偏離路線時的替代路線。Navigation SDK 會使用裝置 GPS 和感應器估算位置。
Navigation SDK 如何處理 GPS 訊號不佳或中斷的情況?

導航開始後,Navigation SDK 至少會接收一次 GPS 訊號,並在下列情況下顯示「正在搜尋 GPS...」訊息:

  • 距離上次收到 GPS 訊號已超過 10 秒。
  • 自上次收到 GPS 訊號後,路線位置移動超過 500 公尺。

如果 SDK 長時間未收到 GPS 訊號,應用程式中以 V 形符號位置表示的路線進度可能會變慢,直到完全停止。在這種情況下,地圖上的 V 形符號會停留在最後一個 GPS 訊號指示的位置。SDK 不會因為未收到 GPS 訊號而自動退出導航模式。不過,在重新接收到訊號之前,可能無法提供導航。

是否有離線模式?
否,Navigation SDK 目前不提供離線模式,但會提供行程的預先快取資訊。

資料

我可以在開始路線前,擷取行程中的所有停靠站/目的地嗎?

可以。如要擷取路線的導航資訊,請呼叫 Navigator.getRouteSegments()。

路線起點是否提供即時路線導引?
可以。Navigation SDK 會提供路線區段清單。此外,使用者也可以滑動標頭中的路線資訊卡,查看各個行進指示。
如何向應用程式使用者提供預計到達時間?

請按照下列步驟,向應用程式使用者提供預計到達時間資訊:

  1. 使用 Navigator.getTimeAndDistanceList() 擷取所有路線控點的時間和距離。
  2. 請比照司機預計到達時間,將這項資訊轉送至用戶端應用程式。
如果導航功能不在前景執行,是否可以使用 RoadSnappedLocationProvider 取得使用者目前貼齊的位置?

可以。RoadSnappedLocationProvider 預設會在背景執行。

Navigation SDK 是否支援地理圍欄?

否。在導航方面,remainingTimeOrdistanceChangeListener 比地理圍欄更有優勢。地理圍欄可能不會考量道路幾何形狀,也可能不會以使用者前往的確切地點為中心。

您可以使用 remainingTimeOrdistanceChangeListener 模擬這項功能。

  1. 設定門檻,決定回呼頻率。
  2. 查看與目的地之間的剩餘距離。

舉例來說,如果將門檻設為 100 公尺,當與目的地的距離變更 100 公尺時,就會收到回呼。隨著距離縮短,您可以將這個門檻更新為較小的值,並更頻繁地接收回呼。接著,檢查剩餘距離,判斷是否已足夠接近上車/下車地點。

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

可以。使用 Navigator.setHeadsUpNotificationEnabled 控制通知。這個方法採用布林值引數。FALSE 會停用通知,TRUE 則會啟用通知。

交易記錄器會使用專屬 ID 追蹤取件和投遞作業,Google 會記錄這些 ID,用於產品分析。如果您是行動服務客戶,Google 建議您導入 NavigationTransactionRecorder,記錄交易。

UI 自訂

可以為最佳路線選項加上顏色代碼嗎?
否。目前不支援為特定路徑選項加上顏色標示。
Navigation SDK 能否顯示最終目的地的預計到達時間?

可以。請使用下列方法:

  1. 使用 Navigator.getTimeAndDistanceList() 擷取所有路線控點的時間和距離。
  2. 使用 NavigationFragment.setEtaCardEnabled(false) 隱藏目前路線控點的預計到達時間。
  3. 顯示最終目的地的預計到達時間。
如何隱藏預計到達時間更新?

您可以呼叫 navigationView.setEtaCardEnabled(false) 停用預計到達時間資訊卡。

頁首和頁尾資訊卡有哪些 UI 自訂選項?

使用 StylingOptions 設定背景顏色樣式。如要隱藏或顯示頁首和頁尾,請使用 NavigationFragment 的 setHeaderEnabled 和 setFooterEnabled 成員函式。

轉送

我可以為使用者提供特定路線,或移除替代路線嗎?
不會。系統預設會提供多條路線,並優先顯示最快的路線。 您可以在要求中加入偏好設定 (例如「避開高速公路和收費站」),影響預設路線。新增路線控點也會影響路線。
我可以向應用程式使用者顯示與預設目的地位置不同的目的地標籤嗎?

可以。建立 Marker,並為目的地和經緯度設定自訂標題。Navigation SDK 會在 NavigationMap 上顯示自訂標題和座標。

我可以使用 Navigation SDK 追蹤偏離預定路線的情況嗎?

可以。使用 Navigator.setRouteChangedListener,在路線變更或有新路線建議時接收通知:

  1. 使用 Navigator.setRouteChangedListener 方法註冊事件監聽器,檢查裝置在路線上的位置。
  2. 在回呼事件處理常式 onRouteChanged 中加入程式碼:
    • 傳送訊息給應用程式使用者,提供最新的預計到達時間和距離資訊。
    • 追蹤裝置位置。
    • [選用] 新增應用程式所需的其他功能,以便在使用者偏離指定路線時處理。
使用者是否可以不完成路線就退出導航?

可以。呼叫 Navigator.stopGuidance 方法即可停止導航。

Navigation SDK 是否支援卡車和大型車輛的路線規劃和導航功能?

可以。有了大型車輛路線規劃 (LVR) 功能,您就能將 Routes API 或 Route Optimization API 產生的卡車專用路線權杖,傳遞至 Navigation SDK。SDK 提供即時路況導航功能,並會顯示路線標註 (高度、重量、危險物質和卡車限制),以及在動態重新規劃路線時,維持車輛的實體設定檔。詳情請參閱「大型車輛路線導航」。

手機模擬器

模擬器是否支援路線變更?

可以。呼叫 simulateLocationsAlongNewRoute,模擬包含路線變更的行程。simulateLocationsAlongExistingRoute 方法會忽略現有路徑的變更。

Workflows

關閉含有導覽片段的活動後,如何關閉通知?

導航通知在導航期間會持續顯示,直到活動關閉為止。車輛抵達目的地後,導航就會停止,通知也會消失。

如要處理通知點擊,請使用 Navigator.startGuidance(intent resumeIntent)。當應用程式使用者點選通知時,系統會觸發 resume intent。一般來說,Navigator.startguidance(getIntent()) 是從主要 Activity 呼叫,當應用程式使用者點選通知時,系統會重新叫用該 Activity。

行動服務

Mobility Services 客戶使用 Navigation SDK 有何不同?

Google 地圖平台行動服務提供一系列 API 和 SDK,可協助運輸和物流企業滿足業務需求。Mobility Services 客戶通常會搭配使用 Navigation SDK 和相關服務,進行路線最佳化、調度、工作追蹤、車隊數據分析等。此外,Mobility Services 客戶的 Navigation SDK 計費方式也不同。詳情請參閱行動服務說明文件。

行動產品目前僅開放給特定客戶使用。詳情請洽詢業務代表。

如何判斷自己是否為 Mobility Services 客戶?
如果不確定目前是否以 Mobility Services 客戶的身分導入 Navigation SDK,請在程式碼中尋找 ReportBillableEvent 呼叫。只有 Mobility Services 客戶應呼叫 ReportBillableEvent 方法。

如何向 Mobility Services 客戶收取 Navigation SDK 費用?
如果是 Mobility Services 客戶,Navigation SDK 的計費和定價方式取決於您與 Google Maps Platform 簽訂的服務合約。如要確認 Mobility Services 導入作業的計費方式是否正確,請參閱「帳單驗證」一節。如要進一步瞭解 Mobility Services 計費方式,請洽詢業務代表。

哪些 Navigation SDK API 僅限 Mobility Services 客戶使用?

Navigation SDK 中有幾個 API 僅供車輛調度管理服務客戶使用,Google 會按交易次數向這些客戶收費。如果您不是 Mobility Services 客戶,下列方法不會執行任何操作:

如果我是 Mobility Services 客戶,是否也可以使用非 Mobility Services 導入的 Navigation SDK?

可以,Mobility Services 客戶可以同時使用 Mobility Services 和非 Mobility Services 導入的 Navigation SDK。不過,您一次只能在應用程式中使用一種導入類型。您也需要建立新的 Google Cloud 雲端專案、帳單帳戶和 API 金鑰,與 Mobility Services 實作項目使用的項目分開。詳情請參閱「Navigation SDK 設定總覽」。

如要進一步瞭解如何使用非 Mobility Services 導入的 Navigation SDK,包括將應用程式從一種導入類型遷移至另一種,請與 Google 帳戶代表聯絡。

注意:如果您目前不是 Mobility Services 客戶,但想進一步瞭解 Mobility Services 的 API 和 SDK 組合,請與 Google Maps Platform 業務團隊聯絡。