GMSMapView 類別參考資料

GMSMapView 類別參考

總覽

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

地圖應該透過便利的建構函式 [GMSMapView mapWithFrame:camera:] 執行個體化。您也可以使用預設 [[GMSMapView alloc] initWithFrame:] 方法建立 (將相機設定為預設位置)。

GMSMapView 只能從主執行緒讀取及修改,類似所有 UIKit 物件。從其他執行緒呼叫這些方法,會導致出現異常或未定義的行為。

公開成員函式

(執行個體類型)- initWithFrame:camera:
 建立並傳回地圖檢視,內含頁框和相機目標。
(執行個體類型)- initWithFrame:mapID:camera:
 建構並傳回包含頁框、地圖 ID 和相機目標的地圖檢視。
(無效)- startrender
 指示此地圖來開啟其轉譯器。
(無效)- stoprender
 指示此地圖關閉其轉譯器。
(無效)- 清除
 清除所有新增至地圖的標記,包括標記、折線和區域疊加層。
(無效)- setMinZoom:maxZoom:
 設定 minZoommaxZoom
(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
 控制地圖是否繪製到車流量資料 (如果有的話)。
GMSMapViewTypemapType
 控制應該顯示的地圖圖塊類型。
GMSMapStylemapStyle
 控制地圖的樣式。
浮點值最小值縮放
 最小縮放 (相機可縮小的最遠位置)。
浮點值最大變焦
 最大縮放比例 (相機可能與地球最接近)。
布林值buildingsEnabled
 設定後,系統會視情況顯示 3D 建築物。
布林值indoorEnabled
 設定是否顯示室內地圖 (如果適用的話)。
GMSIndoorDisplay室內螢幕
 取得 GMSIndoorDisplay 例項,允許觀察或控制室內資料顯示的部分。
GMSUISettings設定
 取得 GMSUISettings 物件,用來控制地圖的使用者介面設定。
UIEdgeInsets邊框間距
 控制檢視畫面的「可見」區域。
GMSMapViewPaddingAdjustmentBehaviorpaddingAdjustmentBehavior
 控制在邊框間距值中新增安全區域插邊的方式。
布林值accessibilityElementsHidden
 預設值為 YES。
GMSMapLayer圖層
 用於圖層的自訂 CALayer 類型的存取子。
GMSFrameRatePreferredFrameRate
 控制轉譯影格速率。
GMSCoordinateBoundsCameraTargetBounds
 如果為 nil,系統會限制相機目標,防止手勢離開指定的邊界。

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

NSString *constkGMSAccessibilityCompass
 指南針按鈕的無障礙功能 ID。
NSString *constkGMSAccessibilityMyLocation
 「我的位置」按鈕的無障礙工具 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

設定 minZoommaxZoom

此方法預期最小值小於或等於最大值,否則會擲回名為 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 為基礎的動畫區塊中製作動畫。

控制在邊框間距值中新增安全區域插邊的方式。

如同邊框間距,安全區域會在裝置安全區域內插入位置對應控制項,例如指南針、我的位置按鈕和樓層挑選器。

預設為 kGMSMapViewPaddingAdjustmentBehaviorAlways.

- (布林值) accessibilityElementsHidden [read, write, assign]

預設值為 YES。

如果設置 NO,GMSMapView 會產生疊加層物件的無障礙元素,例如 GMSMarkerGMSPolyline

這個屬性依照一般 UIAccessibility 通訊協定,但「YES」的預設值除外。

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

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

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

控制轉譯影格速率。

預設值為 kGMSFrameRateMax。

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

如果為 nil,系統會限制相機目標,防止手勢離開指定的邊界。