GMSMapView 類別參考資料


總覽

這是 Google Maps SDK for iOS 的主要類別,也是地圖所有相關方法的進入點。

地圖應使用其中一個建構函式 -init 或 -initWithOptions: 例項化。

GMSMapView 只能從主執行緒讀取和修改,類似於所有 UIKit 物件。從其他執行緒呼叫這些方法,會導致發生例外狀況或未定義的行為。

公開成員函式

(instancetype)- 初始化
 使用 CGRectZero 和預設選項初始化。
(instancetype)- initWithOptions:
 使用指定的選項建立新的地圖檢視。
(instancetype)- initWithFrame:
(可為空值的 instancetype)- initWithCoder:
(instancetype)- initWithFrame:camera:
 建構並傳回具有影格和攝影機目標的地圖檢視。
(instancetype)- initWithFrame:mapID:camera:
 建構並傳回包含頁框、地圖 ID 和攝影機目標的地圖檢視。
(void)- startRendering
 告訴這張地圖強化轉譯器。
(void)- stopRendering
 指示這張地圖關閉轉譯器。
(void)- 清除
 清除已加進地圖的所有標記,包括標記、折線和區域疊加層。
(void)- setMinZoom:maxZoom:
 可設定 minZoommaxZoom
(可為空值GMSCameraPosition *)- cameraForBounds:insets:
 創建一個GMSCameraPosition,用 padding 呈現bounds
(void)- moveCamera:
 根據 update 變更相機。
(BOOL)- areEqualForRenderingPosition:position:
 請根據內部使用的精確度與轉換程度,檢查指定相機位置是否真的會導致相機轉譯的效果相同。
(GMSFeatureLayer
<GMSPlaceFeature * >*)。
- featureLayerOfFeatureType:
 傳回指定類型的地圖項目圖層。
(GMSDatasetFeatureLayer *)- datasetFeatureLayerOfDatasetID:
 傳回指定資料集的資料集地圖項目圖層。
(void)- animateToCameraPosition:
 將這個地圖的相機動畫設為 cameraPosition
(void)- animateToLocation:
 做為 animateToCameraPosition:,但只變更相機位置 (即從目前位置變更為 location)。
(void)- animateToZoom:
 做為 animateToCameraPosition:,但只會變更相機的縮放等級。
(void)- animateToBearing:
 作為 animateToCameraPosition:,但只會變更相機航向 (以度為單位)。
(void)- animateToViewingAngle:
 做為 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。
(void)- animateWithCameraUpdate:
 cameraUpdate 套用至目前的相機,然後使用每個 animateToCameraPosition: 得到的結果。

靜態公開成員函式

(instancetype)+ mapWithFrame:camera:
 建構並傳回含有影格和攝影機目標的地圖檢視。
(instancetype)+ mapWithFrame:mapID:camera:
 便利初始化工具,可建構及傳回含有頁框、地圖 ID 和攝影機目標的地圖檢視。

房源

IBOutlet ID<GMSMapViewDelegate >委派
 GMSMapView委任。
GMSCameraPosition *鏡頭
 控制相機,這會定義地圖的方向。
GMSProjection *投影
 傳回一個GMSProjection 物件,可用來在螢幕座標和經緯度座標之間轉換。
BOOLmyLocationEnabled
 控管是否啟用「我的位置」點和精確度圓形。
CLLocation *myLocation
 如果已啟用「我的位置」,則顯示裝置位置圓點繪製的位置。
GMSMarker *selectedMarker
 選取的標記。
BOOLtrafficEnabled
 控制地圖是否正在繪製交通資料 (如果有的話)。
GMSMapViewTypemapType
 控制應顯示的地圖方塊類型。
GMSMapStyle *mapStyle
 控制地圖樣式。
UIUserInterfaceStyleoverrideUserInterfaceStyle
 將地圖變更為所需的 [UIUserInterfaceStyle](https://developer.apple.com/documentation/uikit/uiuserinterfacestyle?language=objc)。
浮點值minZoom
 最小縮放 (鏡頭最遠的位置可能會縮小)。
浮點值maxZoom
 最大縮放等級 (距離地球最近的相機可能為「地球」)。
BOOLbuildingsEnabled
 設定後,畫面上會顯示 3D 建築物 (如果有的話)。
BOOLindoorEnabled
 設定是否顯示室內地圖 (如果有的話)。
GMSIndoorDisplay *indoorDisplay
 取得GMSIndoorDisplay執行個體,該例項可觀察或控制室內資料顯示畫面的各方面。
GMSUISettings *設定
 取得GMSUISettings物件,該物件控制地圖的使用者介面設定。
UIEdgeInsets邊框間距
 控制「顯示」也就是檢視區域
GMSMapViewPaddingAdjustmentBehaviorpaddingAdjustmentBehavior
 控管在邊框間距值中加入安全區域插邊的方式。
BOOLaccessibilityElementsHidden
 預設值為 YES。
GMSMapLayer *圖層
 用於圖層的自訂 CALayer 類型的存取子。
GMSFrameRatepreferredFrameRate
 控管轉譯影格速率。
GMSCoordinateBounds *cameraTargetBounds
 如果非 nil,則會限制攝影機目標,讓手勢無法離開指定邊界。
GMSMapCapabilityFlagsmapCapabilities
 目前可使用的所有特定條件提供功能 (取決於 mapID 或其他地圖設定)。

(請注意,這些並非成員函式)。

NSString *constkGMSAccessibilityCompass
 指南針按鈕的無障礙 ID。
NSString *constkGMSAccessibilityMyLocation
 「我的位置」的無障礙 ID按鈕。
NSString *constkGMSAccessibilityOutOfQuota
 「配額不足」的無障礙 ID錯誤標籤。

成員職能說明文件

- (執行個體類型) init

使用 CGRectZero 和預設選項初始化。

- (執行個體類型) initWithOptions: (nonnull GMSMapViewOptions *) 選項

使用指定的選項建立新的地圖檢視。

這個方法會複製選項物件的值。

- (執行個體類型) initWithFrame: (CGRect) 影格
- (可為空值的執行個體類型) initWithCoder: (NSCoder *)。 編碼器
+ (instancetype) mapWithFrame: (CGRect) 影格
相機: (GMSCameraPosition *) 攝影機

建構並傳回含有影格和攝影機目標的地圖檢視。

+ (instancetype) mapWithFrame: (CGRect) 影格
mapID: (GMSMapID *) mapID
相機: (GMSCameraPosition *) 攝影機

便利初始化工具,可建構及傳回含有頁框、地圖 ID 和攝影機目標的地圖檢視。

- (執行個體類型) initWithFrame: (CGRect) 影格
相機: (GMSCameraPosition *) 攝影機

建構並傳回具有影格和攝影機目標的地圖檢視。

注意:
這項功能已淘汰,請改用 -init 或 -initWithOptions:。
- (執行個體類型) initWithFrame: (CGRect) 影格
mapID: (GMSMapID *) mapID
相機: (GMSCameraPosition *) 攝影機

建構並傳回包含頁框、地圖 ID 和攝影機目標的地圖檢視。

注意:
這項功能已淘汰,請改用 -init 或 -initWithOptions:。
- (無效) startRendering

告訴這張地圖強化轉譯器。

此為選用與冪等的。

注意:
這項功能已淘汰,這個方法已過時,將在日後推出的版本中移除。
- (void) stopRendering

指示這張地圖關閉轉譯器。

此為選用與冪等的。

注意:
這項功能已淘汰,這個方法已過時,將在日後推出的版本中移除。
- (避免) 清除

清除已加進地圖的所有標記,包括標記、折線和區域疊加層。

這不會清除可見的位置圓點,或重設目前的 mapType。

- (void) setMinZoom: (浮點值) minZoom
maxZoom: (浮點值) maxZoom

可設定 minZoommaxZoom

這個方法會預期最小值小於或等於最大值,否則將擲回名稱為 NSRangeException 的例外狀況。

- (可為空值 GMSCameraPosition *) cameraForBounds: (GMSCoordinateBounds *) bounds
插邊: (UIEdgeInsets) 插邊

創建一個GMSCameraPosition,用 padding 呈現bounds

相機會有零方位和傾斜角度 (例如面向北方,並且正視地球)。它採用了此框架和邊框間距GMSMapView包含的資訊。

如果界限無效,此方法會傳回 nil 相機。

- (void) moveCamera: (GMSCameraUpdate *) 更新

根據 update 變更相機。

相機會立即變更 (沒有動畫)。

- (BOOL) 是 EqualForRenderingPosition: (GMSCameraPosition *) position
位置: (GMSCameraPosition *) otherPosition

請根據內部使用的精確度與轉換程度,檢查指定相機位置是否真的會導致相機轉譯的效果相同。

傳回指定類型的地圖項目圖層。

您必須在 Cloud 控制台中設定特徵層。

如果這張地圖中沒有指定類型的圖層,或是未啟用資料導向樣式,或未使用 Metal 算繪架構,產生的圖層的 `isAvailable` 將會是 NO,且不會回應任何呼叫。

需要使用金屬轉譯器。如要瞭解如何啟用 Metal,請前往 https://developers.google.com/maps/documentation/ios-sdk/config#use-metal

傳回指定資料集的資料集地圖項目圖層。

您必須在 Cloud 控制台中設定資料集 ID。

如果這個地圖上沒有指定 ID 的資料集,或是未啟用資料導向樣式,產生的圖層的 `isAvailable` 將會是 NO,且不會回應任何呼叫。

- (void) animateToCameraPosition: (GMSCameraPosition *) cameraPosition

將這個地圖的相機動畫設為 cameraPosition

- (void) animateToLocation: (CLLocationCoordinate2D) 位置資訊

做為 animateToCameraPosition:,但只變更相機位置 (即從目前位置變更為 location)。

- (void) animateToZoom: (浮點值) 縮放

做為 animateToCameraPosition:,但只會變更相機的縮放等級。

這個值會受 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 限制。

- (避免) animateToBearing: (CLLocationDirection)

作為 animateToCameraPosition:,但只會變更相機航向 (以度為單位)。

0 代表正北。

- (void) animateToViewingAngle: (雙精度浮點數) viewingAngle

做為 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。

這個值會取向地面的最小零 (即直線朝下) 以及距離地平線 30 到 45 度之間的下限 (視距離地球的相對接近程度而定)。

- (void) animateWithCameraUpdate: (GMSCameraUpdate *) cameraUpdate

cameraUpdate 套用至目前的相機,然後使用每個 animateToCameraPosition: 得到的結果。


- (NSString* const) kGMSAccessibilityCompass [related]

指南針按鈕的無障礙 ID。

- (NSString* const) kGMSAccessibilityMyLocation [related]

「我的位置」的無障礙 ID按鈕。

- (NSString* const) kGMSAccessibilityOutOfQuota [related]

「配額不足」的無障礙 ID錯誤標籤。


屬性說明文件

- (IBOutlet id<GMSMapViewDelegate>) 委派 [read, write, assign]

GMSMapView委任。

- (GMSCameraPosition*) camera [read, write, copy]

控制相機,這會定義地圖的方向。

這個屬性會立即修改。

- (GMSProjection*) 投影 [read, assign]

傳回一個GMSProjection 物件,可用來在螢幕座標和經緯度座標之間轉換。

這是目前投影的快照,相機移動時不會自動更新。它代表上次繪製的投影GMSMapView框架,或已明確設定相機或剛建立地圖,即下一個影格。從來永遠不為人知。

- (BOOL) myLocationEnabled [read, write, assign]

控管是否啟用「我的位置」點和精確度圓形。

預設值為 NO。

- (CLLocation*) myLocation [read, assign]

如果已啟用「我的位置」,則顯示裝置位置圓點繪製的位置。

如果停用,或是啟用了此功能,但沒有地區資料可用,這個選項會顯示為「空白」。您可以使用 KVO 觀察這個屬性。

- (GMSMarker*) selectedMarker [read, write, assign]

選取的標記。

設定此屬性可選取特定標記,並在該標記上顯示資訊視窗。如果這個屬性不是 nil,設為 nil 就會取消選取標記,並隱藏資訊視窗。您可以使用 KVO 觀察這個屬性。

- (BOOL) trafficEnabled [read, write, assign]

控制地圖是否正在繪製交通資料 (如果有的話)。

實際情況取決於是否有路況資料。預設值為 NO。

- (GMSMapViewType) mapType [read, write, assign]

控制應顯示的地圖方塊類型。

預設為 kGMSTypeNormal 。

- (GMSMapStyle*) mapStyle [read, write, assign]

控制地圖樣式。

只有在 mapType 為「Normal」時,才會套用非 nil 的地圖樣式。

- (UIUserInterfaceStyle) overrideUserInterfaceStyle [read, write, assign]

將地圖變更為所需的 [UIUserInterfaceStyle](https://developer.apple.com/documentation/uikit/uiuserinterfacestyle?language=objc)。

這會覆寫預設的 UIKit 行為,並預設為 UIUserInterfaceStyleLight,確保回溯相容性。這會影響一般和地形地圖類型的色彩配置。

- (浮點) minZoom [read, assign]

最小縮放 (鏡頭最遠的位置可能會縮小)。

預設值為 kGMSMinZoomLevel。使用 -setMinZoom:maxZoom: 修改。

- (浮點值) maxZoom [read, assign]

最大縮放等級 (距離地球最近的相機可能為「地球」)。

預設為 kGMSMaxZoomLevel。使用 -setMinZoom:maxZoom: 修改。

- (BOOL) buildingsEnabled [read, write, assign]

設定後,畫面上會顯示 3D 建築物 (如果有的話)。

預設值為 YES。

在將自訂方塊圖層加入地圖時,這將可以派上用場,讓您在高縮放等級下更清晰。變更這個值會導致所有圖塊都會短暫失效。

- (BOOL) indoorEnabled [read, write, assign]

設定是否顯示室內地圖 (如果有的話)。

預設值為 YES。

如果設為 NO,系統可能會清除室內資料的快取,並重設使用者目前選取的任何樓層。

- (GMSIndoorDisplay*) indoorDisplay [read, assign]

取得GMSIndoorDisplay執行個體,該例項可觀察或控制室內資料顯示畫面的各方面。

- (GMSUISettings*) 設定 [read, assign]

取得GMSUISettings物件,該物件控制地圖的使用者介面設定。

- (UIEdgeInsets) 邊框間距 [read, write, assign]

控制「顯示」也就是檢視區域

透過在檢視畫面邊緣套用邊框間距即可建立,其中將包含地圖資料,但不會包含 UI 控制項。

如果未平衡邊框間距,檢視畫面的視覺中心會隨之移動。邊框間距也會影響 projection 屬性,因此可見區域不包含邊框間距區域。GMSCameraUpdate FitToBounds 會確保這次的邊框間距和任何要求的邊框間距都會納入考量。

這個屬性可在 UIView 式動畫區塊內建立動畫。

控管在邊框間距值中加入安全區域插邊的方式。

就像邊框間距、安全區域插邊位置地圖控制項,例如指南針、「我的位置」按鈕和裝置安全區域內的樓層挑選器。

預設為 kGMSMapViewPaddingAdjustBehaviorAlways。

- (BOOL) accessibilityElementsHidden [read, write, assign]

預設值為 YES。

如果設為 NO,GMSMapView 將會產生疊加層物件的無障礙元素,例如 GMSMarkerGMSPolyline

這個屬性遵循非正式的 UI 無障礙通訊協定,但預設值為 YES。

- (GMSMapLayer*) 圖層 [read, retain]

用於圖層的自訂 CALayer 類型的存取子。

- (GMSFrameRate) preferredFrameRate [read, write, assign]

控管轉譯影格速率。

預設值為 kGMSFrameRate 好好。

- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign]

如果非 nil,則會限制攝影機目標,讓手勢無法離開指定邊界。

目前可使用的所有特定條件提供功能 (取決於 mapID 或其他地圖設定)。

但不含一律可用的功能。