總覽
這是 Google Maps SDK for iOS 的主要類別,也是所有地圖相關方法的進入點。
地圖應透過其中一個建構函式 -init 或 -initWithOptions: 執行個體化。
GMSMapView只能從主執行緒讀取及修改,類似於所有 UIKit 物件。從其他執行緒呼叫這些方法將導致例外狀況或未定義的行為。
公開成員函式 | |
(執行個體類型) | - init |
使用 CGRectZero 和預設選項初始化。 | |
(執行個體類型) | - initWithOptions: |
以指定的選項建立新的地圖檢視。 | |
(執行個體類型) | - initWithFrame: |
(執行個體類型) | - initWithCoder: |
(執行個體類型) | - initWithFrame:camera: |
建構並傳回含有影格和攝影機目標的地圖檢視。 | |
(執行個體類型) | - initWithFrame:mapID:camera: |
建構並傳回包含頁框、地圖 ID 和攝影機目標的地圖檢視。 | |
(void) | - startRendering |
指示這張地圖強化轉譯器。 | |
(void) | - stopRendering |
指示這張地圖關閉轉譯器。 | |
(void) | - 清除 |
清除已新增至地圖的所有標記,包括標記、折線和區域疊加層。 | |
(void) | - setMinZoom:maxZoom: |
設定 minZoom 和 maxZoom 。 | |
(nullable GMSCameraPosition *) | - cameraForBounds:insets: |
建立一個GMSCameraPosition,與 padding 一起呈現 bounds 。 | |
(void) | - moveCamera: |
根據 update 變更攝影機。 | |
(BOOL) | - areEqualForRenderingPosition:position: |
將內部使用的精確度和轉換程度納入考量,檢查特定鏡頭位置實際上是否會導致相機算繪結果相同。 | |
(GMSFeatureLayer < GMSPlaceFeature * > *) | - featureLayerOfFeatureType: |
傳回指定類型的地圖項目圖層。 | |
(void) | - animateToCameraPosition: |
將此地圖的相機加入 cameraPosition 動畫。 | |
(void) | - animateToLocation: |
作為 animateToCameraPosition,,但只變更相機的位置 (例如,從目前位置變更為 location )。 | |
(void) | - animateToZoom: |
如同 animateToCameraPosition:,但只會變更相機的縮放等級。 | |
(void) | - animateToBearing: |
如同 animateToCameraPosition:,但只會變更相機的方位 (以度為單位)。 | |
(void) | - animateToSeeAngle: |
如同 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。 | |
(void) | - animateWithCameraUpdate: |
將 cameraUpdate 套用至目前的相機,然後按照 animateToCameraPosition: 使用結果。 | |
靜態公開成員函式 | |
(執行個體類型) | + mapWithFrame:camera: |
建構並傳回含有影格和攝影機目標的地圖檢視。 | |
(執行個體類型) | + mapWithFrame:mapID:camera:! |
便利的初始化器,可建構並傳回包含影格、地圖 ID 和相機目標的地圖檢視。 | |
資源 | |
IBOutlet id<GMSMapViewDelegate > | 委派 |
GMSMapView代表。 | |
GMSCameraPosition * | 相機 |
控制攝影機,以定義地圖的方向。 | |
GMSProjection * | 投影 |
傳回一個GMSProjection對象,可用於在螢幕座標和經緯度座標之間進行轉換。 | |
BOOL | myLocationEnabled |
控管是否啟用「我的位置」點和精確度圓圈。 | |
CLLocation * | myLocation |
如果已啟用「我的位置」,會顯示裝置位置圓點的繪製位置。 | |
GMSMarker * | selectedMarker |
選取的標記。 | |
BOOL | trafficEnabled |
控制地圖是否正在繪製車流量資料 (如果有的話)。 | |
GMSMapViewType | mapType |
控制應顯示的地圖圖塊類型。 | |
GMSMapStyle * | mapStyle |
控制地圖的樣式。 | |
float | minZoom |
最小變焦 (最遠的相機可能會縮小)。 | |
float | maxZoom |
最大縮放 (最接近地球的攝影機)。 | |
BOOL | buildingsEnabled |
設定後,系統會在適用情況下顯示 3D 建築物。 | |
BOOL | indoorEnabled |
設定是否顯示室內地圖 (如有)。 | |
GMSIndoorDisplay * | indoorDisplay |
取得GMSIndoorDisplay實例,可觀察或控制室內資料顯示幕。 | |
GMSUISettings * | 設定 |
取得GMSUISettings物件,其可控制地圖的使用者介面設定。 | |
UIEdgeInsets | 邊框間距 |
控制檢視的「可見」區域。 | |
GMSMapViewPaddingAdjustmentBehavior | paddingAdjustmentBehavior |
控管將安全區域插邊新增至邊框間距值的方式。 | |
BOOL | accessibilityElementsHidden |
預設值為 YES。 | |
GMSMapLayer * | 圖層 |
圖層所用自訂 CALayer 類型的存取子。 | |
GMSFrameRate | preferredFrameRate |
控管轉譯影格速率。 | |
GMSCoordinateBounds * | cameraTargetBounds |
如果不是 nil,請限制攝影機目標,避免手勢讓手勢離開指定邊界。 | |
GMSMapCapabilityFlags | mapCapabilities |
目前當下可用的所有可用功能 (視地圖 ID 或其他地圖設定而定)。 | |
相關函式 | |
(請注意,這些並非成員函式)。 | |
NSString *const | kGMSAccessibilityCompass |
指南針按鈕的無障礙 ID。 | |
NSString *const | kGMSAccessibilityMyLocation |
「我的位置」按鈕的無障礙 ID。 | |
NSString *const | kGMSAccessibilityOutOfQuota |
「超出配額」錯誤標籤的無障礙 ID。 |
成員函式說明文件
- (instancetype) init |
使用 CGRectZero 和預設選項初始化。
- (instancetype) initWithOptions: | (非空值 GMSMapViewOptions *) | 選項 |
以指定的選項建立新的地圖檢視。
此方法會複製選項物件的值。
- (instancetype) initWithFrame: | (CGRect) | 影格 |
- (instancetype) initWithCoder: | (NSCoder *) | 編碼器 |
+ (例項類型) mapWithFrame: | (CGRect) | 影格 | |
相機: | (GMSCameraPosition *) | 攝影機 | |
建構並傳回含有影格和攝影機目標的地圖檢視。
+ (例項類型) mapWithFrame: | (CGRect) | 影格 | |
mapID: | (GMSMapID *) | mapID | |
相機: | (GMSCameraPosition *) | 攝影機 | |
便利的初始化器,可建構並傳回包含影格、地圖 ID 和相機目標的地圖檢視。
- (instancetype) initWithFrame: | (CGRect) | 影格 | |
相機: | (GMSCameraPosition *) | 攝影機 | |
建構並傳回含有影格和攝影機目標的地圖檢視。
- 注意:
- 已淘汰。請改用 -init 或 -initWithOptions:。
- (instancetype) initWithFrame: | (CGRect) | 影格 | |
mapID: | (GMSMapID *) | mapID | |
相機: | (GMSCameraPosition *) | 攝影機 | |
建構並傳回包含頁框、地圖 ID 和攝影機目標的地圖檢視。
- 注意:
- 已淘汰。請改用 -init 或 -initWithOptions:。
- (void) startRendering |
指示這張地圖強化轉譯器。
此為選用性和冪等性參數。
- 注意:
- 已淘汰。此方法已過時,將在日後推出的版本中移除。
- (void) stopRendering |
指示這張地圖關閉轉譯器。
此為選用性和冪等性參數。
- 注意:
- 已淘汰。此方法已過時,將在日後推出的版本中移除。
- (void) 清楚 |
清除已新增至地圖的所有標記,包括標記、折線和區域疊加層。
這項操作不會清除可見位置圓點,也不會重設目前的 mapType。
- (void) setMinZoom: | (float) | minZoom | |
maxZoom: | (float) | maxZoom | |
設定 minZoom
和 maxZoom
。
這個方法預期最小值小於或等於最大值,否則會擲回名稱為 NSRangeException 的例外狀況。
- (nullable GMSCameraPosition *) cameraForBounds: | (GMSCoordinateBounds *) | 邊界 | |
插邊: | (UIEdgeInsets) | 插邊 | |
建立一個GMSCameraPosition,與 padding
一起呈現 bounds
。
攝影機的航向和傾斜角度會為零,也就是面向北方,並且直視地球。這會採計此設計的影格和邊框間距GMSMapView入考量。
如果邊界無效,這個方法會傳回 nil 相機。
- (void) moveCamera: | (GMSCameraUpdate *) | 更新 |
根據 update
變更攝影機。
相機變更會立即生效 (沒有動畫)。
- (BOOL) isEqualForRenderingPosition: | (GMSCameraPosition *) | 位置 | |
排名: | (GMSCameraPosition *) | otherPosition | |
將內部使用的精確度和轉換程度納入考量,檢查特定鏡頭位置實際上是否會導致相機算繪結果相同。
- (GMSFeatureLayer<GMSPlaceFeature *> *) featureLayerOfFeatureType: | (GMSFeatureType) | featureType |
傳回指定類型的地圖項目圖層。
您必須在 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: | (float) | 縮放 |
如同 animateToCameraPosition:,但只會變更相機的縮放等級。
這個值會被限制在 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 中。
- (void) animateToBearing: | (CLLocationDirection) | 聲音 |
如同 animateToCameraPosition:,但只會變更相機的方位 (以度為單位)。
0 表示正北。
- (void) animateToSeeAngle: | (雙精度浮點數) | 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*) 相機 [read, write, copy] |
控制攝影機,以定義地圖的方向。
此屬性會立即修改。
- (GMSProjection*) 投影 [read, assign] |
傳回一個GMSProjection對象,可用於在螢幕座標和經緯度座標之間進行轉換。
這是目前投影的快照,不會在相機移動時自動更新。它代表上一次繪製的投影GMSMapView框,或是指已明確設定相機或剛剛建立地圖的投影。永遠不會是 Nil。
- (BOOL) myLocationEnabled [read, write, assign] |
控管是否啟用「我的位置」點和精確度圓圈。
預設值為 NO。
- (CLLocation*) myLocation [read, assign] |
如果已啟用「我的位置」,會顯示裝置位置圓點的繪製位置。
如果設為停用,或是已啟用,但沒有位置資料,則這個狀態將會是 nil。您可以使用 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) padding [read, write, assign] |
控制檢視的「可見」區域。
只要在檢視畫面邊緣加上邊框間距,即可建立包含地圖資料,但不會包含 UI 控制項。
如果邊框間距不平衡,檢視畫面的視覺中心會視情況移動。邊框間距也會影響 projection
屬性,因此可見區域不會包含邊框間距區域。GMSCameraUpdate FitToBounds 會確保納入此邊框間距和要求的所有邊框間距。
這個屬性可在以 UIView 為基礎的動畫區塊內以動畫呈現。
- (GMSMapViewPaddingAdjustmentBehavior) paddingAdjustmentBehavior [read, write, assign] |
控管將安全區域插邊新增至邊框間距值的方式。
如同邊框間距,安全區域插邊會放置地圖控制項,例如指南針、「我的位置」按鈕和裝置安全區域內的樓層選擇器。
預設值為 kGMSMapViewPaddingAdjustmentBehaviorAlways。
- (BOOL) accessibilityElementsHidden [read, write, assign] |
預設值為 YES。
如果設為 NO,GMSMapView將產生疊加層物件的無障礙元素,例如GMSMarker和GMSPolyline。
這個屬性符合非正式的 UI 無障礙通訊協定,但預設值為 YES 除外。
- (GMSMapLayer*) 圖層 [read, retain] |
圖層所用自訂 CALayer 類型的存取子。
- (GMSFrameRate) preferredFrameRate [read, write, assign] |
控管轉譯影格速率。
預設值為 kGMSFrameRateHeight。
- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
如果不是 nil,請限制攝影機目標,避免手勢讓手勢離開指定邊界。
- (GMSMapCapabilityFlags) mapCapabilities [read, assign] |
目前當下可用的所有可用功能 (視地圖 ID 或其他地圖設定而定)。
但不包括一律可用的功能。