總覽
這是 Google Navigation SDK for iOS 的主要類別,提供控制目的地的導航方式,以及存取路線和進度資訊的方法。
這個類別不支援子類別。
這個類別不防護執行緒安全。所有方法都必須從主執行緒呼叫。
公開成員函式 | |
(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 設定和記錄至伺服器,在目前導覽工作階段期間套用至導覽事件。 | |
房源 | |
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 |
決定應用程式在背景執行時,是否會顯示含有指引資訊的 UILocalNotification。 | |
GMSNavigationLightingMode | suggestedLightingMode |
根據時段和裝置位置建議的光源模式。 | |
BOOL | shouldDisplayPrompts |
決定是否應顯示路況提示、更好路線和事故的提示。 | |
GMSNavigationSpeedAlertOptions * | speedAlertOptions |
GMSNavigationSpeedAlertOptions 用於自訂 GMSNavigationSpeedAlertSeverity 的觸發門檻。 | |
相關函式 | |
(請注意,這些並非成員函式)。 | |
typedef void(^ | GMSRouteStatusCallback )(GMSRouteStatus routeStatus) |
在系統發現從裝置位置到指定目的地的路線,或基於 RouteStatus 指示的理由找不到路線時呼叫。 | |
typedef void(^ | GMSRouteInfoCallback )(GMSNavigationRouteInfo *_Nullable routeInfo) |
在計算到所提供路線控點的路線資訊 (預計到達時間與距離) 時呼叫。 | |
typedef void(^ | GMSNavigationTransactionIDErrorHandler )(NSError *error) |
如果透過 setTransactionIDs 設定交易 ID 失敗,就會呼叫此方法。 |
成員職能說明文件
- (void) addListener: | (id< GMSNavigatorListener >) | 聆聽者 |
- (BOOL) removeListener: | (id< GMSNavigatorListener >) | 聆聽者 |
- (void) setDestinations: | (NSArray<GMSNavigationWaypoint * > *) | 目的地 | |
回呼: | (GMSRouteStatusCallback) | 回呼 | |
設定多個導覽目的地,覆寫任何先前設定的目的地。
如果找到從裝置位置到指定目的地的路線,則提供的回呼將會用 GMSRouteStatusOK 呼叫。如果在找到路線之前設定新的目的地,則將會取消要求,並且呼叫回呼會有 GMSRouteStatusCanceled。如果基於其他原因找不到路線,系統將以適當的錯誤狀態呼叫回呼。
系統一律會以非同步方式在主要佇列上分派回呼。
- (void) setDestinations: | (NSArray<GMSNavigationWaypoint * > *) | 目的地 | |
routingOptions: | (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 *) | 目的地 | |
withRoutingOptions: | (GMSNavigationRoutingOptions *) | routingOptions | |
回呼: | (GMSRouteInfoCallback) | 回呼 | |
根據路線策略傳迴路線資訊:預設最佳或較短的路線。
這個方法僅適用於透過 Google 按單筆交易付費的 Mobility Services 客戶。如果專案沒有呼叫這個 API 的權限,系統會傳回「nil」值。
- 參數:
-
目的地 目的地路線控點。 routingOptions 用於擷取路線資訊的選項。路由策略和替代路徑策略會被略過,因為此方法會傳回所有轉送策略的路徑資訊。 回呼 接收路徑資訊時呼叫的回呼。
- (可為空值 GMSNavigationWaypoint *) continueToNextDestination |
已淘汰,
請改用新的目的地清單呼叫其中一個 -setDestinations
:... 方法。
從目前的目的地清單中彈出第一個目的地。通話結束後,導航會送到下一個目的地 (如有)。
- 傳回:
- 路線控點指引目前正朝向前進;如果沒有離開路線控點,則傳回 nil。
- 注意:
- 這項功能已淘汰,請改用其中一個 -setDestinations:... 方法。
- (void) clearDestinations |
清除先前設定的所有目的地,並移除地圖中所有計算的路線。
指引啟用後,這項功能會自動停止。
- (NSTimeInterval) timeToWaypoint: | (GMSNavigationWaypoint *) | 路線控點 |
傳回到達指定路點的預估時間;如果路點不屬於目前路線,則傳回 CLTimeIntervalMax。
這項資訊會在導航功能啟用時根據目前的裝置位置更新。
如果提供的路點不是目前路線中的目的地,則傳回 CLTimeIntervalMax。
- (CLLocationDistance) distanceToWaypoint: | (GMSNavigationWaypoint *) | 路線控點 |
傳回與指定路點的預估距離;如果路線點不屬於目前路線,則傳回 CLLocationDistanceMax。
系統會在導航功能啟用時根據目前的裝置位置更新這項資訊。
如果提供的路點不是目前路線中的目的地,則傳回 CLLocationDistanceMax。
- (void) setTransactionIDs: | (NSArray< NSString * > *) | transactionIDs | |
errorHandler: | (可為空值 GMSNavigationTransactionIDErrorHandler) | errorHandler | |
將持續性交易 ID 設定和記錄至伺服器,在目前導覽工作階段期間套用至導覽事件。
系統會在導覽工作階段結束時清除交易 ID。這個方法僅適用於透過 Google 按單筆交易付費的 Mobility Services 客戶。如果專案沒有呼叫這個 API 的權限,系統會傳回「nil」值。
- 參數:
-
transactionIDs 套用至目前導覽工作階段的交易 ID。每筆可計費交易的交易 ID 不得重複。個別交易 ID 必須包含至少一個,最多 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] |
如果透過 setTransactionIDs 設定交易 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: 時,是否應自動停止導航。
如果設為 NO,在您抵達目的地後,導覽頁首和頁尾會繼續顯示。導覽標題會持續顯示最後一個指引步驟,導覽頁尾會持續更新剩餘的時間和距離,直到到達時間/距離達到 0 為止。此外,-navigator
:didUpdateRemainingTime 和 -navigator
:didUpdateRemainingDistance 更新會繼續。明確將 guidanceActive
設為 NO,即可停止導航及顯示剩餘時間/距離更新。
如果設為 是,guidanceActive
會在抵達時自動設為 NO。
預設值為 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
傳回,並簡化成線段。
- 注意:
- 系統會輪詢用戶端中的 GPS 訊號,藉此取得位置資料。GPS 訊號不佳可能會導致系統進一步進行內插,這麼做可能會產生較不精確的路線。如果指引從未開始,這個路徑會是空白的。
- (GMSNavigationVoiceGuidance) voiceGuidance [read, write, assign] |
決定是否啟用路況和即時路線快訊的語音導引。
預設為 GMSNavigationVoiceGuidanceAlertsAndGuidance。
- (GMSVoiceGuidanceAudioDeviceType) audioDeviceType [read, write, assign] |
決定語音導引可播放的音訊裝置。
預設值為 GMSVoiceGuidanceAudioDeviceTypeBluetooth。
- (BOOL) vibrationEnabled [read, write, assign] |
指定裝置是否在播放語音快訊時發出震動。
- (BOOL) sendsBackgroundNotifications [read, write, assign] |
決定應用程式在背景執行時,是否會顯示含有指引資訊的 UILocalNotification。
預設值為 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 公里時會顯示白色文字和紅色背景。