GMSMapView 類別參考資料

GMSMapView 類別參考資料

總覽

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

地圖應透過便利的建構函式實例化 [GMSMapView mapWithFrame:camera:] 。它也可能使用預設的 [[GMSMapView alloc] initWithFrame:] 方法 (其相機位置將被設定到預設位置) 建立。

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

公開成員函式

(instancetype)- initWithFrame:camera:
 建構並傳回包含影格和攝影機目標的地圖檢視。
(instancetype)- initWithFrame:mapID:camera:
 建構並傳回包含影格、地圖 ID 和攝影機目標的地圖檢視。
(無效)- startRendering
 指示這張地圖開啟轉譯器。
(無效)- 停止轉譯
 指示這張地圖關閉轉譯器。
(無效)- 清楚
 清除已加進地圖的所有標記,包括標記、折線和區域疊加層。
(無效)- setMinZoom:maxZoom:
 設定 minZoommaxZoom
(可為空值 GMSCameraPosition *)- cameraForBounds:insets:
 建構GMSCameraPosition,以 padding 呈現 bounds
(無效)- moveCamera:
 根據 update 變更攝影機。
(BOOL)- areEqualForRenderingPosition:position:
 檢查指定的相機位置是否基本上會導致相機算繪相同 (考量到內部使用的精確度和轉換程度)。
(GMSFeatureLayer
< GMSPlaceFeature * > *)
- featureLayerOfFeatureType:
 傳回指定類型的地圖項目圖層。
(無效)- animateToCameraPosition:
 將這個地圖的相機設為 cameraPosition 的動畫。
(無效)- animateToLocation:
 與 animateToCameraPosition: 相同時,只會變更攝影機的位置 (亦即從目前位置變更為 location)。
(無效)- animateToZoom:
 如同 animateToCameraPosition:,但只會變更相機的縮放等級。
(無效)- animateToBearing:
 如同 animateToCameraPosition:,但只會變更相機的方位 (以度為單位)。
(無效)- animateToVisibilityAngle:
 如同 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。
(無效)- animateWithCameraUpdate:
 cameraUpdate 套用至目前的相機,然後按照 animateToCameraPosition: 使用結果。

靜態公開成員函式

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

資源

IBOutlet ID<GMSMapView 委派 >委派
 GMSMapView委派。
GMSCameraPosition攝影機
 控制相機,可定義地圖的方向。
GMSProjection投影
 傳回 GMSProjection 物件,可用於在螢幕座標和經緯度座標之間轉換。
BOOLmyLocationEnabled
 控管是否啟用「我的位置」點和精確度圓圈。
CLLocation * myLocation
 如果已啟用「我的位置」,會顯示繪製裝置位置點的位置。
GMSMarkerselectedMarker
 已選取的標記。
BOOLtrafficEnabled
 控制地圖是否正在繪製路況資料 (如有)。
GMSMapViewTypemapType
 控制應顯示的地圖圖塊類型。
GMSMapStylemapStyle
 控制地圖的樣式。
浮點值minZoom
 最小縮放等級 (可縮小到最遠相機)。
浮點值maxZoom
 最大縮放等級 (離地球最相近)。
BOOLbuildingsEnabled
 如果設定這項政策,系統將在可用時顯示 3D 建築物。
BOOLindoorEnabled
 設定是否要顯示室內地圖 (如有)。
GMSIndoorDisplayindoorDisplay
 取得GMSIndoorDisplay 實例,此項目可觀察或控制室內資料顯示的各個部分。
GMSUISettings設定
 取得GMSUISettings物件,可控制地圖的使用者介面設定。
UIEdgeInsets邊框間距
 控制檢視的「顯示」區域。
GMSMapViewPaddingAdjustBehaviorpaddingAdjustBehavior
 控制如何在邊框間距值中加入安全區域插邊。
BOOLaccessibilityElementsHidden
 預設為 YES。
GMSMapLayer圖層
 圖層用於自訂 CALayer 類型的存取子。
GMSFrameRatePreferredFrameRate
 控制轉譯影格速率。
GMSCoordinateBoundscameraTargetBounds
 如果為 nil,則限制攝影機目標,讓手勢無法離開指定邊界。
GMSMapCapabilityFlagsmapCapabilities
 目前可供使用的所有功能 (取決於 mapID 或其他地圖設定) 。

(請注意,這些不是成員函式)。

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

成員功能說明文件

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

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

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

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

- (instancetype) initWithFrame: (CGRect) 影格
相機: (GMSCameraPosition *) 攝影機

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

- (instancetype) initWithFrame: (CGRect) 影格
mapID: (GMSMapID *) mapID
相機: (GMSCameraPosition *) 攝影機

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

- (void) startRendering

指示這張地圖開啟轉譯器。

此為選用項目,且為冪等。

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

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

此為選用項目,且為冪等。

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

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

這項操作不會清除可見的位置點,也不會重設目前的 mapType。

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

設定 minZoommaxZoom

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

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

建構GMSCameraPosition,以 padding 呈現 bounds

相機沒有一定的航向和傾斜角度 (也就是面向北方,直接注視地球)。這會取得此框架和邊框間距GMSMapView的考慮。

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

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

根據 update 變更攝影機。

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

- (BOOL) isEqualForRenderingPosition: (GMSCameraPosition *) 位置
位置: (GMSCameraPosition *) otherPosition

檢查指定的相機位置是否基本上會導致相機算繪相同 (考量到內部使用的精確度和轉換程度)。

- (GMSFeatureLayer<GMSPlaceFeature *> *) featureLayerOfFeatureType: (GMSFeatureType) 功能類型

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

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

如果地圖上沒有指定類型的圖層,或是未啟用資料導向樣式,或者未使用 Metal 算繪架構,產生的圖層可供使用為 NO,不會回應任何呼叫。

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

- (void) animateToCameraPosition: (GMSCameraPosition *) cameraPosition

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

- (void) animateToLocation: (CLLocationCoordinate2D) 位置

與 animateToCameraPosition: 相同時,只會變更攝影機的位置 (亦即從目前位置變更為 location)。

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

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

這個值是由 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 的限制。

- (避免) animateToBearing: (CLLocationDirection)

如同 animateToCameraPosition:,但只會變更相機的方位 (以度為單位)。

0 表示正北。

- (void) animateToVisibilityAngle: (雙倍) viewingAngle

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

這個值會取下下限為零 (例如直視向下),以及朝地平線方向介於 30 到 45 度之間,實際情況視地球的相對鄰近程度而定。

- (void) animateWithCameraUpdate: (GMSCameraUpdate *) cameraUpdate

cameraUpdate 套用至目前的相機,然後按照 animateToCameraPosition: 使用結果。


- (NSString* 常數) kGMSAccessibilityCompass [related]

指南針按鈕的無障礙 ID。

- (NSString* 常數) kGMSAccessibilityMyLocation [related]

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

- (NSString* const) kGMSAccessibilityOutOfQuota [related]

「超出配額」錯誤標籤的無障礙 ID。


屬性說明文件

- (IBOutlet ID<GMSMapView 委派>) 委派 [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 mapStyle。

- (浮動) 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。

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

- (GMSIndoorDisplay*) indoorDisplay [read, assign]

取得GMSIndoorDisplay 實例,此項目可觀察或控制室內資料顯示的各個部分。

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

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

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

控制檢視的「顯示」區域。

套用檢視邊緣周圍的邊框間距,即可建立包含地圖資料,但是不包含 UI 控制項。

如果邊框間距不平衡,檢視畫面的視覺中心會視情況移動。邊框間距也會影響 projection 屬性,因此可見區域不會包含邊框間距區域。GMSCameraUpdatefitToBounds 將確保此邊框間距以及任何要求的邊框間距都列入考量。

這個屬性可在以 UIView 為基礎的動畫區塊中以動畫呈現。

控制如何在邊框間距值中加入安全區域插邊。

如同邊框間距,安全區域插邊也會設定裝置安全區域內的指南針、我的位置按鈕和樓層挑選器等位置地圖控制項。

預設值為 kGMSMapViewPaddingAdjustBehaviorAlways。

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

預設為 YES。

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

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

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

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

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

控制轉譯影格速率。

預設值為 kGMSFrameRateMaximum。

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

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

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

但不含一律可用功能。