常見問題
產品特色
- Navigation SDK 服務條款通知應如何顯示?
- 語音導引支援哪些語言?
- 駕駛人退出導航模式時,系統是否會繼續航行?
- 開始或變更路線時,有可以使用折線嗎?
- 應用程式使用者是否需要安裝 Google 地圖行動版?
- Navigation SDK 能否識別餐廳和其他目的地附近的停車場?
- 接近轉彎點時,Navigation SDK 是否會顯示車道內的車道方向?
網路
資料
- 我可以在開始路線之前,擷取旅程中所有的停靠站/目的地嗎?
- 路線的起點有即時路線指引嗎?
- 「預估抵達時間」(ETA) 如何告知應用程式使用者?
- 如果導航不在前景執行,是否可以使用
RoadSnappedLocationProvider
取得驅動程式的目前貼齊位置? - Navigation SDK 是否支援地理圍欄?
- 導航應用程式在背景執行時,可以停用通知嗎?
- 如何查看 Google 保留的交易記錄?
使用者介面自訂
路線
- 我可以為駕駛提供特定路線或移除替代路線嗎?
- 我可以為駕駛人顯示與預設目的地位置不同的標籤嗎?
- 我可以使用 Navigation SDK 追蹤與已定義路徑之間的偏差嗎?
- 駕駛人能在不完成路線的情況下退出導航嗎?
模擬器
Workflows
產品特色
- 應用程式必須導入含有「Navigation SDK 服務條款」的對話方塊,指出每個驅動程式都必須接受。駕駛人可透過這個對話方塊同意《服務條款》。Navigation SDK 會提供條款的文字檔案。
- 在 Android 中,使用
NavigationApi.showTermsAndConditionsDialog
方法顯示含有字詞的對話方塊。 - 在 iOS 中呼叫
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
。 - Google Maps Mobile 支援的所有語言都會自動用於 Navigation SDK。裝置具有預設系統語言,應用程式無法變更這項設定,但應用程式可以存取超過 70 種語言。
-
需要。在 Android 中,一旦啟動後,
LocationListener
會繼續在背景執行。您的應用程式會繼續對齊位置並維持方位。在 iOS 中,如要繼續在背景接收位置和航向的位置更新,請實作道路貼齊功能,並將
allowsBackgroundLocationUpdates
設為YES
。 -
需要。建立或變更路徑時,
RouteChangeListener
會提供折線。 - 否,即使在裝置上安裝 Google Maps SDK,Navigation SDK 也不需要。
- 否,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
。 - 按照目前驅動程式預計到達時間的方式,將時間資訊轉送至用戶端應用程式。
- 使用
-
如果導航不在前景執行,是否可以使用
RoadSnappedLocationProvider
取得驅動程式目前的貼齊位置? -
需要。在 Android 中,
RoadSnappedLocationProvider
預設會在背景執行。在 iOS 中,如要繼續在背景執行導覽,請實作
GMSRoadSnappedLocationProviderDelegate
的委派,並將屬性allowsBackgroundLocationUpdates
設為TRUE
。 - Navigation SDK 是否支援地理圍欄?
-
否。在導覽環境中,
remainingTimeOrdistanceChangeListener
比簡單的地理圍欄具有優勢。地理圍欄可能不會考慮道路幾何圖形,也不得以駕駛員行駛的確切地點為中心。您可以使用
remainingTimeOrdistanceChangeListener
估算此功能。- 設定閾值以決定回呼頻率。
- 查看距離目的地的剩餘距離。
舉例來說,如果將門檻設為 100 公尺,您就會在目的地的距離改變 100 公尺時收到回呼。隨著距離減少,您可以將這個門檻更新為較小的值,並接收更頻繁的回呼。然後檢查剩餘的距離,判斷您是否接近上車/下車地點的距離。
在 iOS 中,實作委派
GMSNavigatorDelegate.didUpdateRemainingDistance
以管理通知之間的距離。 - 當導航應用程式在背景執行時,我可以停用通知嗎?
-
需要。在 Android 中,使用
Navigator.setHeadsUpNotificationEnabled
控管通知。此方法含有布林引數。FALSE
會停用通知;TRUE
會啟用通知。在 iOS 中,將
GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates
設為 NO,即可停用道路固定位置資訊的背景通知。如要停用其他位置資訊通知的背景處理功能,請呼叫
GMSNavigator.sendsBackgroundNotifications(NO)
。 -
交易記錄工具會使用專屬 ID 追蹤上車和下車地點,Google 會記錄這項資訊來計費。詳情請參閱所用平台的「導入測試操作說明」:
如要瞭解帳單交易的編碼相關事宜,請參閱「 可計費交易」。
使用者介面自訂
- 我可以使用不同顏色標示最佳路線選項嗎?
- 不可以,目前無法為特定路線選項加上顏色標示。
- Navigation SDK 可以顯示最終目的地的預計到達時間嗎?
-
需要。在 Android 中,使用下列方法:
- 使用
Navigator.getTimeAndDistanceList()
擷取所有路線控點的時間和距離。 - 使用
NavigationFragment.setEtaCardEnabled(false)
隱藏目前路線控點的預計到達時間。 - 轉譯最終目的地預計到達時間。
在 iOS 中,使用下列步驟:
- 呼叫
GMSNavigator.routeLegs(read)
。 - 使用最後一段路段時,呼叫
GMSNavigator.timeToNextDestination
。 - 使用
MSMapView.settings.navigationFooterEnabled=NO
設為 FALSE 隱藏目前路線控點的預計到達時間。 - 轉譯最終目的地預計到達時間。
- 使用
- 如何隱藏預計到達時間的最新資訊?
-
您可以透過下列方法停用預計到達時間資訊卡:
- 在 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
會在應用程式使用者點選通知時觸發。一般而言,系統會從主要 Activity 呼叫Navigator.startguidance(getIntent())
,這個活動會在應用程式使用者點選通知時召回 Activity。