總覽
這是 Google Maps SDK for iOS 的主要類別,也是所有地圖相關方法的進入點。
地圖應透過便利的建構函式實例化 [GMSMapView mapWithFrame:camera:] 。它也可能使用預設的 [[GMSMapView alloc] initWithFrame:] 方法 (其相機位置將被設定到預設位置) 建立。
GMSMapView只能從主執行緒讀取及修改,與所有 UIKit 物件類似。從其他執行緒呼叫這些方法將導致例外狀況或未定義的行為。
公開成員函式 | |
(instancetype) | - initWithFrame:camera: |
建構並傳回包含影格和攝影機目標的地圖檢視。 | |
(instancetype) | - initWithFrame:mapID:camera: |
建構並傳回包含影格、地圖 ID 和攝影機目標的地圖檢視。 | |
(無效) | - startRendering |
指示這張地圖開啟轉譯器。 | |
(無效) | - 停止轉譯 |
指示這張地圖關閉轉譯器。 | |
(無效) | - 清楚 |
清除已加進地圖的所有標記,包括標記、折線和區域疊加層。 | |
(無效) | - setMinZoom:maxZoom: |
設定 minZoom 和 maxZoom 。 | |
(可為空值 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 物件,可用於在螢幕座標和經緯度座標之間轉換。 | |
BOOL | myLocationEnabled |
控管是否啟用「我的位置」點和精確度圓圈。 | |
CLLocation * | myLocation |
如果已啟用「我的位置」,會顯示繪製裝置位置點的位置。 | |
GMSMarker * | selectedMarker |
已選取的標記。 | |
BOOL | trafficEnabled |
控制地圖是否正在繪製路況資料 (如有)。 | |
GMSMapViewType | mapType |
控制應顯示的地圖圖塊類型。 | |
GMSMapStyle * | mapStyle |
控制地圖的樣式。 | |
浮點值 | minZoom |
最小縮放等級 (可縮小到最遠相機)。 | |
浮點值 | maxZoom |
最大縮放等級 (離地球最相近)。 | |
BOOL | buildingsEnabled |
如果設定這項政策,系統將在可用時顯示 3D 建築物。 | |
BOOL | indoorEnabled |
設定是否要顯示室內地圖 (如有)。 | |
GMSIndoorDisplay * | indoorDisplay |
取得GMSIndoorDisplay 實例,此項目可觀察或控制室內資料顯示的各個部分。 | |
GMSUISettings * | 設定 |
取得GMSUISettings物件,可控制地圖的使用者介面設定。 | |
UIEdgeInsets | 邊框間距 |
控制檢視的「顯示」區域。 | |
GMSMapViewPaddingAdjustBehavior | paddingAdjustBehavior |
控制如何在邊框間距值中加入安全區域插邊。 | |
BOOL | accessibilityElementsHidden |
預設為 YES。 | |
GMSMapLayer * | 圖層 |
圖層用於自訂 CALayer 類型的存取子。 | |
GMSFrameRate | PreferredFrameRate |
控制轉譯影格速率。 | |
GMSCoordinateBounds * | cameraTargetBounds |
如果為 nil,則限制攝影機目標,讓手勢無法離開指定邊界。 | |
GMSMapCapabilityFlags | mapCapabilities |
目前可供使用的所有功能 (取決於 mapID 或其他地圖設定) 。 | |
相關函式 | |
(請注意,這些不是成員函式)。 | |
NSString *const | kGMSAccessibilityCompass |
指南針按鈕的無障礙 ID。 | |
NSString *const | kGMSAccessibilityMyLocation |
「我的位置」按鈕的無障礙工具 ID。 | |
NSString *const | kGMSAccessibilityOutOfQuota |
「超出配額」錯誤標籤的無障礙 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 | |
設定 minZoom
和 maxZoom
。
此方法預期最小值小於或等於最大值,否則將擲回名稱為 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 為基礎的動畫區塊中以動畫呈現。
- (GMSMapViewPaddingAdjustBehavior) paddingAdjustBehavior [read, write, assign] |
控制如何在邊框間距值中加入安全區域插邊。
如同邊框間距,安全區域插邊也會設定裝置安全區域內的指南針、我的位置按鈕和樓層挑選器等位置地圖控制項。
預設值為 kGMSMapViewPaddingAdjustBehaviorAlways。
- (BOOL) accessibilityElementsHidden [read, write, assign] |
預設為 YES。
如果設定為 NO,GMSMapView 將會產生疊加層物件的無障礙功能元素,例如 GMSMarker 和 GMSPolyline。
這個屬性遵循非正式的 UI 無障礙通訊協定,預設值為 YES。
- (GMSMapLayer*) 圖層 [read, retain] |
圖層用於自訂 CALayer 類型的存取子。
- (GMSFrameRate) preferredFrameRate [read, write, assign] |
控制轉譯影格速率。
預設值為 kGMSFrameRateMaximum。
- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
如果為 nil,則限制攝影機目標,讓手勢無法離開指定邊界。
- (GMSMapCapabilityFlags) mapCapabilities [read, assign] |
目前可供使用的所有功能 (取決於 mapID 或其他地圖設定) 。
但不含一律可用功能。