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
 控制應該顯示的地圖圖塊類型。
GMSMapStyle *mapStyle
 控制地圖的樣式。
浮點值最小值縮放
 最小縮放 (相機可縮小的最遠位置)。
浮點值最大變焦
 最大縮放比例 (相機可能與地球最接近)。
布林值buildingsEnabled
 設定後,系統會視情況顯示 3D 建築物。
布林值indoorEnabled
 設定是否顯示室內地圖 (如果適用的話)。
GMSIndoorDisplay *室內螢幕
 取得 GMSIndoorDisplay 例項,允許觀察或控制室內資料顯示的部分。
GMSUISettings設定
 取得 GMSUISettings 物件,用來控制地圖的使用者介面設定。
UIEdgeInsets邊框間距
 控制檢視畫面的「可見」區域。
GMSMapViewPaddingAdjustmentBehaviorpaddingAdjustmentBehavior
 控制在邊框間距值中新增安全區域插邊的方式。
布林值accessibilityElementsHidden
 預設值為 YES。
GMSMapLayer圖層
 用於圖層的自訂 CALayer 類型的存取子。
GMSFrameRatePreferredFrameRate
 控制轉譯影格速率。
GMSCoordinateBoundsCameraTargetBounds
 如果為 nil,系統會限制相機目標,防止手勢離開指定的邊界。

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

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* 常數) 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

這個屬性按照一般 UIAcessibility 通訊協定進行,除了 YES 的預設值。

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

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

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

控制轉譯影格速率。

預設值為 kGMSFrameRateMax。

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

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