總覽
這是 iOS 版 Google Navigation SDK 的主要類別,可提供方法控制目的地的導航,以及存取路線和進度資訊。
此類別不支援子類別。
這個類別不安全,所有方法都必須從主執行緒呼叫。
公開成員函式 | |
(void) | - addListener: |
新增事件監聽器。 | |
(BOOL) | - removeListener: |
移除事件監聽器。 | |
(void) | - setDestinations:callback: |
設定多個目的地以進行導覽,並覆寫先前設定的目的地。 | |
(void) | - setDestinations:routingOptions:callback: |
設定多個目的地以進行導覽,並覆寫先前設定的目的地。 | |
(void) | - setDestinations:routeToken:callback: |
設定多個目的地以進行導覽,使用路徑符記導覽至預先計算的路徑。 | |
(void) | - getRouteInfoForDestination:withRoutingOptions:callback: |
根據路線策略傳迴路線資訊:預設最佳或較短的路線。 | |
(可為空值GMSNavigationWaypoint *) | - continueToNextDestination |
已淘汰, | |
(void) | - clearDestinations |
清除先前設定的所有目的地,並從地圖中移除所有計算的路線。 | |
(NSTimeInterval) | - timeToWaypoint: |
傳回到達指定路線控點的預計時間;如果路線控點不屬於目前路線,則傳回 CLTimeIntervalMax。 | |
(CLLocationDistance) | - distanceToWaypoint: |
傳回到指定路線控點的預估距離;如果路線控點不屬於目前路線,則傳回 CLLocationDistanceMax。 | |
(void) | - setTransactionIDs:errorHandler: |
將持續進行的交易 ID 設定和記錄到伺服器,此 ID 會套用到目前導航工作階段期間的導覽事件。 | |
資源 | |
BOOL | avoidsHighways |
在產生前往目的地的路線時,是否要避開高速公路。 | |
BOOL | avoidsTolls |
在產生前往目的地的路線時,是否要避開收費路段。 | |
BOOL | avoidsFerries |
在產生前往目的地的路線時,是否要避免搭乘渡輪。 | |
GMSNavigationLicensePlateRestriction * | licensePlateRestriction |
根據目前駕照的最後位數和國家/地區代碼設定車牌限制。 | |
BOOL | guidanceActive |
目前是否啟用即時路線導航。 | |
BOOL | stopGuidanceAtArrival |
是否要在呼叫 -navigator :didArriveAtWaypoint: 時,自動停止導航。 | |
NSTimeInterval | timeUpdateThreshold |
預計到下一個目的地會觸發呼叫 navigator:didUpdateRemainingTime: 方法的預估時間下限。 | |
CLLocationDistance | distanceUpdateThreshold |
到下一個目的地的預估距離下限 (會觸發呼叫 navigator:didUpdateRemainingDistance: 方法)。 | |
NSTimeInterval | timeToNextDestination |
傳回前往下一個目的地的預估時間。 | |
CLLocationDistance | distanceToNextDestination |
傳回前往下一個目的地的預估距離。 | |
GMSNavigationDelayCategory | delayCategoryToNextDestination |
將誤點類別傳回下一個目的地。 | |
GMSRouteLeg * | currentRouteLeg |
歷程的目前路段。 | |
NSArray< GMSRouteLeg * > * | routeLegs |
路線路段陣列,其中每個航段都對應至已設定的目的地。 | |
GMSPath * | traveledPath |
裝置自上次 GuideActive 設為 YES 後所走的路徑。 | |
GMSNavigationVoiceGuidance | voiceGuidance |
決定是否要針對路況和即時路線快訊啟用語音導引。 | |
GMSVoiceGuidanceAudioDeviceType | audioDeviceType |
決定要透過哪些音訊裝置播放語音導引。 | |
BOOL | vibrationEnabled |
決定裝置是否在播放語音警示時也應震動。 | |
BOOL | sendsBackgroundNotifications |
決定當應用程式在背景執行時,是否要顯示包含指引資訊的 UILocalNotifications。 | |
GMSNavigationLightingMode | suggestedLightingMode |
根據時段和裝置位置,建議的亮度模式。 | |
BOOL | shouldDisplayPrompts |
決定是否應顯示車流量提示、更好的路線和事故。 | |
GMSNavigationSpeedAlertOptions * | speedAlertOptions |
GMSNavigationSpeedAlertOptions 用於自訂 GMSNavigationSpeedAlertSeverity 的觸發門檻。 | |
相關函式 | |
(請注意,這些不是成員函式)。 | |
typedef void(^) | GMSRouteStatusCallback )(GMSRouteStatus routeStatus) |
找到從裝置位置到指定目的地的路線時呼叫,或因 RouteStatus 指出原因找不到路線時呼叫。 | |
typedef void(^) | GMSRouteInfoCallback )(GMSNavigationRouteInfo *_Nullable routeInfo) |
在計算提供路線控點的路線資訊 (預計到達時間和距離) 時呼叫此方法。 | |
typedef void(^) | GMSNavigationTransactionIDErrorHandler )(NSError *錯誤) |
如果透過 setTransactionID 設定交易 ID 失敗,就會呼叫此方法。 |
成員函式說明文件
- (void) addListener: | (ID< GMSNavigatorListener >) | 監聽器 |
- (BOOL) removeListener: | (ID< GMSNavigatorListener >) | 監聽器 |
- (void) setDestinations: | (NSArray< GMSNavigationWaypoint * > *) | 目的地 | |
回呼: | (GMSRouteStatusCallback) | 回呼 | |
設定多個目的地以進行導覽,並覆寫先前設定的目的地。
如果系統從裝置位置找到到指定目的地的路線,便會使用 GMSRouteStatusOK 來呼叫提供的回呼。如果新的目的地在找到路線之前就設定了,則要求將會取消,而回呼將會使用 GMSRouteStatusCanceled 來呼叫。如果基於任何其他原因,找不到路線,系統會呼叫回呼並提供適當的錯誤狀態。
回呼一律會在主佇列上以非同步方式分派。
- (void) setDestinations: | (NSArray< GMSNavigationWaypoint * > *) | 目的地 | |
routeOptions: | (GMSNavigationRoutingOptions *) | routingOptions | |
回呼: | (GMSRouteStatusCallback) | 回呼 | |
設定多個目的地以進行導覽,並覆寫先前設定的目的地。
傳回的路徑是使用轉送選項計算而得。
- 參數:
-
目的地 目的地路線控點的陣列。 routingOptions 影響轉送邏輯 (轉送策略) 的選項。 回呼 當系統找到從用戶端位置到指定目的地的路線時,或因 RouteStatus 指出的原因找不到路線,會呼叫此方法。
- (void) setDestinations: | (NSArray< GMSNavigationWaypoint * > *) | 目的地 | |
routeToken: | (NSString *) | routeToken | |
回呼: | (GMSRouteStatusCallback) | 回呼 | |
設定多個目的地以進行導覽,使用路徑符記導覽至預先計算的路徑。
路線將維持不變,駕駛人起點位置和道路/路況資訊都會隨之改變。系統仍會根據符記中編碼的轉送選項,重新轉送路徑。
使用路徑權杖啟動導航工作階段時,系統僅支援 GMSNavigationTravelModeDriving
和 GMSNavigationTravelModeTwoWheeler
。設定 travelMode
來設定交通方式。如果不支援目前的交通方式,呼叫就會失敗,且回呼中會傳回 GMSRouteStatusTravelModeUnsupported
。
- 參數:
-
目的地 目的地路線控點的陣列應與提供給 RoutesPreferred API 的目的地相同,才能取得路線符記。 routeToken RoutesPreferred API 傳回的路徑權杖字串。在 RoutesPreferred API 中指定的轉送選項會以這個路徑符記編碼,並在重新規劃路線時用於重新產生預先計算的路徑或新路徑。 回呼 當系統找到從用戶端位置到指定目的地的路線時,或因 RouteStatus 指出的理由找不到路線,會呼叫此方法。
- (void) getRouteInfoForDestination: | (GMSNavigationWaypoint *) | 目的地 | |
使用 RouteOptions: | (GMSNavigationRoutingOptions *) | routingOptions | |
回呼: | (GMSRouteInfoCallback) | 回呼 | |
根據路線策略傳迴路線資訊:預設最佳或較短的路線。
如果專案沒有呼叫此 API 的權限,則傳回 nil
值。
- 參數:
-
目的地 目的地路線控點。 routingOptions 用於擷取路線資訊的選項。系統會忽略路線策略和替代路線策略,因為這個方法會傳回所有路線策略的路線資訊。 回呼 接收路徑資訊時呼叫的回呼。
已淘汰,
改用新的目的地清單呼叫其中一個 -setDestinations
:... 方法。
從目前的目的地清單中彈出第一個目的地。這次通話結束後,指引會導向下一個目的地。
- 傳回:
- 路線控點指南現在正朝向前進;如果沒有其他路線控點,則設為 nil。
- 注意:
- 已淘汰。請改用 -setDestinations:... 方法。
- (void) clearDestinations |
清除先前設定的所有目的地,並從地圖中移除所有計算的路線。
如果導引處於啟用狀態,這項功能會自動停止。
- (NSTimeInterval) timeToWaypoint: | (GMSNavigationWaypoint *) | waypoint |
傳回到達指定路線控點的預計時間;如果路線控點不屬於目前路線,則傳回 CLTimeIntervalMax。
在導航功能啟用時,系統會根據裝置目前的位置進行更新。
如果提供的路線控點不是目前路線中的目的地,則傳回 CLTimeIntervalMax。
- (CLLocationDistance) distanceToWaypoint: | (GMSNavigationWaypoint *) | waypoint |
傳回到指定路線控點的預估距離;如果路線控點不屬於目前路線,則傳回 CLLocationDistanceMax。
在導航功能啟用時,系統會根據目前的裝置位置進行更新。
如果提供的路線控點不是目前路線中的目的地,則傳回 CLLocationDistanceMax。
- (void) setTransactionID: | (NSArray< NSString * > *) | transactionIDs | |
errorHandler: | (可為空值 GMSNavigationTransactionIDErrorHandler) | errorHandler | |
將持續進行的交易 ID 設定和記錄到伺服器,此 ID 會套用到目前導航工作階段期間的導覽事件。
導覽工作階段結束時,交易 ID 將遭到清除。
- 參數:
-
transactionIDs 套用至目前導覽工作階段的交易 ID。每筆可計費交易的交易 ID 不得重複。個別交易 ID 必須包含至少 1 至 64 個字元。交易結束時 (但工作階段仍在進行),這份清單可以列出空白的。 errorHandler 如果交易 ID 無效時發生錯誤,系統會在主執行緒上以非同步方式叫用區塊。
好友與相關職務說明文件
- (typedef void(^ GMSRouteStatusCallback)(GMSRouteStatus routeStatus)) [related] |
找到從裝置位置到指定目的地的路線時呼叫,或因 RouteStatus 指出原因找不到路線時呼叫。
- (typedef void(^ GMSRouteInfoCallback)(GMSNavigationRouteInfo *_Nullable routeInfo) [related] |
在計算提供路線控點的路線資訊 (預計到達時間和距離) 時呼叫此方法。
- 參數:
-
routeInfo 到達指定目的地的路線資訊。如果計算失敗,則值為 nil。
- (typedef void(^ GMSNavigationTransactionIDErrorHandler)(NSError *error) [related] |
如果透過 setTransactionID 設定交易 ID 失敗,就會呼叫此方法。
詳情請參閱 API 的說明文件。
資源說明文件
- (BOOL) avoidsHighways [read, write, assign] |
在產生前往目的地的路線時,是否要避開高速公路。
預設值為 NO。
- (BOOL) avoidsTolls [read, write, assign] |
在產生前往目的地的路線時,是否要避開收費路段。
預設值為 NO。
- (BOOL) avoidsFerries [read, write, assign] |
在產生前往目的地的路線時,是否要避免搭乘渡輪。
預設為 YES。
- (GMSNavigationLicensePlateRestriction*) licensePlateRestriction [read, write, assign] |
根據目前駕照的最後位數和國家/地區代碼設定車牌限制。
這可讓我們根據車牌號碼,繞行特定類型的道路限制。這僅適用於設定這個值之後發出的 setDestinations 呼叫。最好在取得導航器後立即設定此值。
如果沒有車牌限制,請設為「nil」。預設為 nil。
- (BOOL) guidanceActive [read, write, assign] |
目前是否啟用即時路線導航。
如果 GuideActive 為 YES,但目前沒有可用路線,則導航會在有路線可用時啟動。如果呼叫 clearDestinations 或到達路線控點,這個屬性會設為 NO。
- (BOOL) stopGuidanceAtArrival [read, write, assign] |
是否要在呼叫 -navigator
:didArriveAtWaypoint: 時,自動停止導航。
如果設為「否」,抵達後會繼續顯示導覽標頭和頁尾。導覽標題將繼續顯示最後一個引導步驟,導覽頁尾會繼續更新剩餘時間和距離,直到到達 0 的時間/距離為止。此外,-navigator
:didUpdateRemainingTime 和 -navigator
:didUpdateRemainingDistance 會繼續更新。將 guidanceActive
明確設為 NO,以停止導航和剩餘的時間/距離更新。
如果設為「是」,guidanceActive
抵達後會自動設為「否」。
預設為 YES。
- (NSTimeInterval) timeUpdateThreshold [read, write, assign] |
預計到下一個目的地會觸發呼叫 navigator:didUpdateRemainingTime:
方法的預估時間下限。
如果設為 NSTimeIntervalMax,系統會停用時間更新回呼。如果設為負值,系統將採用 1 秒的預設門檻值。預設值為 1 秒鐘。
- 注意:
- 如果沒有事件監聽器實作
navigator:didUpdateRemainingTime:
,系統就會忽略這個值。
- (CLLocationDistance) distanceUpdateThreshold [read, write, assign] |
到下一個目的地的預估距離下限 (會觸發呼叫 navigator:didUpdateRemainingDistance:
方法)。
如果設為 CLLocationDistanceMax,系統就會停用距離更新回呼。如果設為負值,系統將使用預設閾值 (1 公尺)。預設值為一公尺。
- 注意:
- 如果沒有事件監聽器實作
navigator:didUpdateRemainingDistance:
,系統就會忽略這個值。
- (NSTimeInterval) timeToNextDestination [read, assign] |
傳回前往下一個目的地的預估時間。
在導航功能啟用時,系統會根據目前的裝置位置進行更新。
如果沒有路線,則傳回 CLTimeIntervalMax。
- (CLLocationDistance) distanceToNextDestination [read, assign] |
傳回前往下一個目的地的預估距離。
在導航功能啟用時,系統會根據目前的裝置位置進行更新。
如果沒有路線,則傳回 CLLocationDistanceMax。
- (GMSNavigationDelayCategory) delayCategoryToNextDestination [read, assign] |
將誤點類別傳回下一個目的地。
在導航功能啟用時,系統會根據目前的裝置位置進行更新。
如果沒有路線或路況資料,則傳回 GMSNavigationDelayCategoryNoData。
- (GMSRouteLeg*) currentRouteLeg [read, assign] |
歷程的目前路段。
這GMSRouteLeg 的起點位置會是裝置最新的已知 (路面貼) 位置。
- (NSArray<GMSRouteLeg *>*) routeLegs [read, assign] |
路線路段陣列,其中每個航段都對應至已設定的目的地。
- (GMSPath*) traveledPath [read, assign] |
裝置自上次 GuideActive 設為 YES 後所走的路徑。
如果指引從未開始,這個路徑會是空白的。路徑包含 GMSRoadSnappedLocationProvider
傳回的路邊位置,但簡化了多餘點。例如將連續的線性點轉換為單一線段。
- (GMSNavigationVoiceGuidance) voiceGuidance [read, write, assign] |
決定是否要針對路況和即時路線快訊啟用語音導引。
預設為 GMSNavigationVoiceGuidanceAlertsAndGuidance。
- (GMSVoiceGuidanceAudioDeviceType) audioDeviceType [read, write, assign] |
決定要透過哪些音訊裝置播放語音導引。
預設為 GMSVoiceGuidanceAudioDeviceTypeBluetooth。
- (BOOL) vibrationEnabled [read, write, assign] |
決定裝置是否在播放語音警示時也應震動。
- (BOOL) sendsBackgroundNotifications [read, write, assign] |
決定當應用程式在背景執行時,是否要顯示包含指引資訊的 UILocalNotifications。
預設為 YES。
- (GMSNavigationLightingMode) suggestedLightingMode [read, assign] |
根據時段和裝置位置,建議的亮度模式。
- (BOOL) shouldDisplayPrompts [read, write, assign] |
決定是否應顯示車流量提示、更好的路線和事故。
預設為 YES。
- (GMSNavigationSpeedAlertOptions*) speedAlertOptions [read, write, assign] |
GMSNavigationSpeedAlertOptions 用於自訂 GMSNavigationSpeedAlertSeverity 的觸發門檻。
您可以使用這項資源,自訂次要和重大快訊的速度快訊觸發門檻 (百分比)。您也可以使用這個方法,針對重大速度快訊自訂觸發時間門檻。
設定 nil 就不會收到任何速度的動態饋給資料,且 NavSDK 的預設速度警示將顯示:當速度超過速限超過 5 mph 或 10 kph 時,速度快訊會顯示紅色文字;如果速度超過 10 英里或 20 公里,則顯示白色文字和紅色背景。