GMSMapView 類別參考資料


總覽

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

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

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

公開成員函式

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

靜態公開成員函式

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

資源

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

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

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

成員職能說明文件

- (執行個體類型) init

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

- (執行個體類型) initWithOptions: (非空值 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: (float)  minZoom
maxZoom: (float)  maxZoom

可設定 minZoommaxZoom

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

- (nullable GMSCameraPosition *) cameraForBounds: (GMSCoordinateBounds *) bounds
插邊: (UIEdgeInsets) 插邊

創建一個GMSCameraPosition,用 padding 呈現bounds

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

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

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

根據 update 變更相機。

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

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

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

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

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

如果這張地圖中沒有指定類型的圖層,或是未啟用資料導向樣式,或未使用 Metal 算繪架構,產生的圖層將顯示為 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: (float)  縮放

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

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

- (避免) animateToBearing: (CLLocationDirection)

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

0 代表正北。

- (void) animateToVIEWAngle: (雙精度浮點數) 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

這會覆寫預設的 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 或其他地圖設定)。

但不含一律可用的功能。