總覽
這是 Google Maps SDK for iOS 的主要類別,是與地圖相關的所有方法的進入點。
地圖應該透過便利的建構函式 [GMSMapView mapWithFrame:camera:] 執行個體化。您也可以使用預設 [[GMSMapView alloc] initWithFrame:] 方法建立 (將相機設定為預設位置)。
GMSMapView 只能從主執行緒讀取及修改,類似所有 UIKit 物件。從其他執行緒呼叫這些方法,會導致出現異常或未定義的行為。
公開成員函式 | |
(執行個體類型) | - initWithFrame:camera: |
建立並傳回地圖檢視,內含頁框和相機目標。 | |
(執行個體類型) | - initWithFrame:mapID:camera: |
建構並傳回包含頁框、地圖 ID 和相機目標的地圖檢視。 | |
(無效) | - startrender |
指示此地圖來開啟其轉譯器。 | |
(無效) | - stoprender |
指示此地圖關閉其轉譯器。 | |
(無效) | - 清除 |
清除所有新增至地圖的標記,包括標記、折線和區域疊加層。 | |
(無效) | - setMinZoom:maxZoom: |
設定 minZoom 及 maxZoom 。 | |
(GMSCameraPosition * 可為空值) | - cameraForBounds:insets: |
建構 GMSCameraPosition,以padding 顯示bounds 。 | |
(無效) | - moveCamera: |
根據 update 變更相機。 | |
(布林值) | - areEqualForrenderPosition:position: |
檢查指定相機位置是否確實導致攝影機的轉譯結果皆相同,並將內部使用的精確度和轉換等級納入考量。 | |
(無效) | - animateToCameraPosition: |
將此地圖的相機製作成 cameraPosition 。 | |
(無效) | - animateToLocation: |
改成 animateToCameraPosition:,但只變更相機的位置 (即從目前位置變更為location )。 | |
(無效) | - animateToZoom: |
改成 animateToCameraPosition:,但只會變更相機的縮放等級。 | |
(無效) | - animateToBearing: |
改成 animateToCameraPosition:,但只會變更相機的航向 (以度為單位)。 | |
(無效) | - animateToViewingAngle: |
作為 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。 | |
(無效) | - animateWithCameraUpdate: |
將 cameraUpdate 套用至目前的相機,然後根據 animateToCameraPosition:. 使用結果。 | |
靜態公開成員函式 | |
(執行個體類型) | + mapWithFrame:camera: |
建構並傳回包含畫格和相機目標的地圖檢視。 | |
(執行個體類型) | + mapWithFrame:mapID:camera: |
便利的初始化器,可使用頁框、地圖 ID 和相機目標建立並傳回地圖檢視。 | |
屬性 | |
IBOutlet id<GMSMapViewDelegate > | 委派 |
GMSMapView委派。 | |
GMSCameraPosition * | 相機 |
控制相機,以定義地圖的方向。 | |
GMSProjection * | 投影 |
傳回 GMSProjection 物件,可用於在螢幕座標和緯度/經度座標之間進行轉換。 | |
布林值 | |
控制是否已啟用「我的位置」點及精確度圓圈。 | |
CLLocation * | 我的位置 |
如果啟用了「我的位置」,會顯示使用者點的繪製位置。 | |
GMSMarker * | selectedMarker |
選取的標記。 | |
布林值 | trafficEnabled |
控制地圖是否繪製到車流量資料 (如果有的話)。 | |
GMSMapViewType | mapType |
控制應該顯示的地圖圖塊類型。 | |
GMSMapStyle * | mapStyle |
控制地圖的樣式。 | |
浮點值 | 最小值縮放 |
最小縮放 (相機可縮小的最遠位置)。 | |
浮點值 | 最大變焦 |
最大縮放比例 (相機可能與地球最接近)。 | |
布林值 | buildingsEnabled |
設定後,系統會視情況顯示 3D 建築物。 | |
布林值 | indoorEnabled |
設定是否顯示室內地圖 (如果適用的話)。 | |
GMSIndoorDisplay * | 室內螢幕 |
取得 GMSIndoorDisplay 例項,允許觀察或控制室內資料顯示的部分。 | |
GMSUISettings * | 設定 |
取得 GMSUISettings 物件,用來控制地圖的使用者介面設定。 | |
UIEdgeInsets | 邊框間距 |
控制檢視畫面的「可見」區域。 | |
GMSMapViewPaddingAdjustmentBehavior | paddingAdjustmentBehavior |
控制在邊框間距值中新增安全區域插邊的方式。 | |
布林值 | accessibilityElementsHidden |
預設值為 YES。 | |
GMSMapLayer * | 圖層 |
用於圖層的自訂 CALayer 類型的存取子。 | |
GMSFrameRate | PreferredFrameRate |
控制轉譯影格速率。 | |
GMSCoordinateBounds * | CameraTargetBounds |
如果為 nil,系統會限制相機目標,防止手勢離開指定的邊界。 | |
相關函式 | |
(請注意,這些函式並非成員函式)。 | |
NSString *const | kGMSAccessibilityCompass |
指南針按鈕的無障礙功能 ID。 | |
NSString *const | kGMSAccessibilityMyLocation |
「我的位置」按鈕的無障礙工具 ID。 |
成員函式說明文件
+ (執行個體類型) mapWithFrame: | (問題) | 框架 | |
攝影機: | (GMSCameraPosition *) | camera | |
建構並傳回包含畫格和相機目標的地圖檢視。
+ (執行個體類型) mapWithFrame: | (問題) | 框架 | |
mapID: | (GMSMapID *) | mapID | |
攝影機: | (GMSCameraPosition *) | camera | |
便利的初始化器,可使用頁框、地圖 ID 和相機目標建立並傳回地圖檢視。
- (執行個體類型) initWithFrame: | (問題) | 框架 | |
攝影機: | (GMSCameraPosition *) | camera | |
建立並傳回地圖檢視,內含頁框和相機目標。
- (執行個體類型) initWithFrame: | (問題) | 框架 | |
mapID: | (GMSMapID *) | mapID | |
攝影機: | (GMSCameraPosition *) | camera | |
建構並傳回包含頁框、地圖 ID 和相機目標的地圖檢視。
- (無效) startrender |
指示此地圖來開啟其轉譯器。
這是選擇性和冪等的。
- 注意:
- 這項功能已淘汰,此方法已過時,將在日後推出的版本中移除。
- (無效) stoprender |
指示此地圖關閉其轉譯器。
這是選擇性和冪等的。
- 注意:
- 這項功能已淘汰,此方法已過時,將在日後推出的版本中移除。
- (無效) 清除 |
清除所有新增至地圖的標記,包括標記、折線和區域疊加層。
這不會清除可見位置,也不會重設目前的 mapType。
- (void) setMinZoom: | (浮動) | 最小值縮放 | |
maxZoom: | (浮動) | maxZoom | |
設定 minZoom
及 maxZoom
。
此方法預期最小值小於或等於最大值,否則會擲回名為 NSRangeException 的例外狀況。
- (可為 GMSCameraPosition *) CameraForBounds: | (GMSCoordinateBounds *) | 邊界 | |
插邊: | (UIEdgeInsets) | 插邊 | |
建構 GMSCameraPosition,以padding
顯示bounds
。
相機將會沒有航向和傾斜 (也就是朝向北方,並直接看著地球)。這會將這個GMSMapView的框架和邊框間距納入考量。
如果邊界無效,此方法會傳回 nil 相機。
- (避免) moveCamera: | (GMSCameraUpdate *) | 更新 |
根據 update
變更相機。
相機即時變更 (沒有動畫)。
- (BOOL) isEqualForrenderPosition: | (GMSCameraPosition *) | position | |
位置: | (GMSCameraPosition *) | otherPosition | |
檢查指定相機位置是否確實導致攝影機的轉譯結果皆相同,並將內部使用的精確度和轉換等級納入考量。
- (無效) animateToCameraPosition: | (GMSCameraPosition *) | 相機位置 |
將此地圖的相機製作成 cameraPosition
。
- (void) animateToLocation: | (CLLocationCoordinate2D) | 地點 |
作為 animateToCameraPosition:,但只會變更相機的位置 (即從目前位置變更為location
)。
- (避免) animateToZoom: | (浮動) | 變焦 |
改成 animateToCameraPosition:,但只會變更相機的縮放等級。
這個值由 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 參照。
- (void) animateToBearing: | (CLLocationDirection) | 方位 |
改成 animateToCameraPosition:,但只會變更相機的航向 (以度為單位)。
0 表示正北。
- (無效) animateToViewingAngle: | (雙倍) | 檢視角度 |
作為 animateToCameraPosition:,但只會變更相機的視角 (以度為單位)。
這個值將最小化為最低的零 (亦即朝直,並且朝向地平線的 30 到 45 度),視地球的相對接近程度而定。
- (無效) animateWithCameraUpdate: | (GMSCameraUpdate *) | CameraUpdate |
將 cameraUpdate
套用至目前的相機,然後根據 animateToCameraPosition:. 使用結果。
好友和相關函式說明文件
- (NSString* 常數) kGMSAccessibilityCompass [related] |
指南針按鈕的無障礙功能 ID。
- (NSString* 常數) kGMSAccessibilityMyLocation [related] |
「我的位置」按鈕的無障礙工具 ID。
屬性說明文件
- (IBOutlet id<GMSMapViewDelegate>) 委派 [read, write, assign] |
GMSMapView委派。
- (GMSCameraPosition*) 相機 [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) 建築物:已啟用 [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
屬性,因此可見區域不會包括邊框間距區域。GMSCameraUpdatefitToBounds 將確保此邊框間距和所有要求的邊框間距都會納入考量。
這個屬性可在 UIView 為基礎的動畫區塊中製作動畫。
- (GMSMapViewPaddingAdjustmentBehavior) paddingAdjustmentBehavior [read, write, assign] |
控制在邊框間距值中新增安全區域插邊的方式。
如同邊框間距,安全區域會在裝置安全區域內插入位置對應控制項,例如指南針、我的位置按鈕和樓層挑選器。
預設為 kGMSMapViewPaddingAdjustmentBehaviorAlways.
- (布林值) accessibilityElementsHidden [read, write, assign] |
預設值為 YES。
如果設置 NO,GMSMapView 會產生疊加層物件的無障礙元素,例如 GMSMarker 和 GMSPolyline。
這個屬性依照一般 UIAccessibility 通訊協定,但「YES」的預設值除外。
- (GMSMapLayer*) 圖層 [read, retain] |
用於圖層的自訂 CALayer 類型的存取子。
- (GMSFrameRate) PreferredFrameRate [read, write, assign] |
控制轉譯影格速率。
預設值為 kGMSFrameRateMax。
- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
如果為 nil,系統會限制相機目標,防止手勢離開指定的邊界。