<GMSMapView 委派> 通訊協定參考

<GMSMapViewApproval>通訊協定參考資料

總覽

上事件的委派GMSMapView

公開成員函式

(void) - mapView:willMove:
 在地圖相機變更之前呼叫,可能是由於手勢、動畫 (例如使用者輕觸「我的位置」按鈕) 或透過相機明確更新,或在圖層上的零長度動畫上更新呼叫。
(void) - mapView:didChangeCameraPosition:
 在地圖上任何動畫或手勢期間重複呼叫 (如果相機已明確設定,則呼叫一次)。
(void) - mapView:idleAtCameraPosition:
 地圖閒置時,於任何待處理的手勢或動畫完成 (或已經明確設定相機) 之後呼叫。
(void) - mapView:didTapAtCoordinate:
 在特定座標的輕觸手勢之後呼叫,但前提是未輕觸標記。
(void) - mapView:didLongPressAtCoordinate:
 在特定座標上長按手勢後呼叫。
(BOOL) - mapView:didTapMarker:
 在輕觸標記後呼叫。
(void) - mapView:didTapInfoWindowOfMarker:
 在使用者輕觸標記的資訊視窗之後,會呼叫此方法。
(void) - mapView:didLongPressInfoWindowOfMarker:
 在長按標記資訊視窗後呼叫。
(void) - mapView:didTapOverlay:
 使用者輕觸疊加層後,會呼叫此方法。
(void) - mapView:didTapPOIWithPlaceID:name:location:
 在輕觸搜尋點後呼叫。
(可為空值的 UIView *)- mapView:markerInfoWindow:
 在標記即將選取時呼叫,並提供選用的自訂資訊視窗 (如果這個方法傳回 UIView)。
(可為空值的 UIView *)- mapView:markerInfoContents:
 mapView:markerInfoWindow: 傳回 nil 時呼叫。
(void) - mapView:didCloseInfoWindowOfMarker:
 標記的資訊視窗關閉時,會呼叫此方法。
(void) - mapView:didBeginDraggingMarker:
 在標記上開始拖曳時呼叫。
(void) - mapView:didEndDraggingMarker:
 在拖曳標記結束之後呼叫。
(void) - mapView:didDragMarker:
 在拖曳標記時呼叫。
(BOOL) - didTapMyLocationButtonForMapView:
 在輕觸「我的位置」按鈕時呼叫。
(void) - mapView:didTapMyLocation:
 在輕觸「我的位置」點時呼叫。
(void) - mapViewDidStartTileRendering:
 當剛要求圖塊或標籤才開始算繪時,會呼叫此方法。
(void) - mapViewDidFinishTileRendering:
 所有圖塊都載入 (或永久失敗) 及標籤轉譯完畢時,會呼叫此方法。
(void) - mapViewSnapshotReady:
 地圖穩定 (載入方塊、已轉譯的標籤、相機閒置) 和疊加層物件轉譯時,會呼叫此方法。
(void) - mapView:didChangeMapCapabilities:
 每次地圖功能變更時呼叫。
(void) - mapView:didTapFeatures:inFeatureLayer:atLocation:
 在輕觸資料導向樣式地圖項目圖層中的地圖項目後,會呼叫。

成員函式說明文件

- (void) mapView: (GMSMapView *) mapView
將: (BOOL)  gesture
[optional]

在地圖相機變更之前呼叫,可能是由於手勢、動畫 (例如使用者輕觸「我的位置」按鈕) 或透過相機明確更新,或在圖層上的零長度動畫上更新呼叫。

參數:
mapView使用者輕觸的地圖檢視。
手勢如果答案為「是」,表示網頁會使用使用者手勢。
- (void) mapView: (GMSMapView *) mapView
hasChangeCameraPosition: (GMSCameraPosition *) position
[optional]

在地圖上任何動畫或手勢期間重複呼叫 (如果相機已明確設定,則呼叫一次)。

可能不會為所有中繼相機位置呼叫此方法。動畫或手勢的最終位置一律呼叫此方法。

- (void) mapView: (GMSMapView *) mapView
BatteryAtCameraPosition: (GMSCameraPosition *) position
[optional]

地圖閒置時,於任何待處理的手勢或動畫完成 (或已經明確設定相機) 之後呼叫。

- (void) mapView: (GMSMapView *) mapView
hasTapAtCoordinate: (CLLocationCoordinate2D)  Coordinate
[optional]

在特定座標的輕觸手勢之後呼叫,但前提是未輕觸標記。

在取消選取目前選取的任何標記 (輕觸地圖上的隱含動作) 之前,會呼叫此方法。

- (void) mapView: (GMSMapView *) mapView
doLongPressAtCoordinate: (CLLocationCoordinate2D)  Coordinate
[optional]

在特定座標上長按手勢後呼叫。

參數:
mapView使用者輕觸的地圖檢視。
座標使用者輕觸的位置。
- (BOOL) mapView: (GMSMapView *) mapView
hasTapMarker: (GMSMarker *) marker
[optional]

在輕觸標記後呼叫。

參數:
mapView使用者輕觸的地圖檢視。
馬克筆輕觸的標記。
傳回:
是,如果這個委派代表處理了輕觸事件,導致地圖無法執行預設選取行為,如果地圖應繼續執行預設的選取行為,則為 NO。
- (void) mapView: (GMSMapView *) mapView
hasTapInfoWindowOfMarker: (GMSMarker *) marker
[optional]

在使用者輕觸標記的資訊視窗之後,會呼叫此方法。

- (void) mapView: (GMSMapView *) mapView
doLongPressInfoWindowOfMarker: (GMSMarker *) marker
[optional]

在長按標記資訊視窗後呼叫。

- (void) mapView: (GMSMapView *) mapView
doTapOverlay: (GMSOverlay *) overlay
[optional]

使用者輕觸疊加層後,會呼叫此方法。

輕觸標記上的輕觸不會呼叫此方法。

參數:
mapView使用者輕觸的地圖檢視。
overlay輕觸的疊加層。
- (void) mapView: (GMSMapView *) mapView
hasTapPOIWithPlaceID (NSString *) placeID
name: (NSString *) name
位置: (CLLocationCoordinate2D)  location
[optional]

在輕觸搜尋點後呼叫。

參數:
mapView使用者輕觸的地圖檢視。
placeID所輕觸搜尋點的 placeID。
名稱已輕觸的搜尋點名稱。
位置所輕觸搜尋點的位置。
- (nullable UIView *) mapView: (GMSMapView *) mapView
tagInfoWindow: (GMSMarker *) marker
[optional]

在標記即將選取時呼叫,並提供選用的自訂資訊視窗 (如果這個方法傳回 UIView)。

如果在呼叫此方法後變更這個檢視畫面,這些變更不一定會反映在轉譯後的版本。

傳回的 UIView 上任一維度的邊界不得超過 500 點。由於系統隨時只會顯示一個資訊視窗,因此傳回的檢視畫面可重複用於其他資訊視窗。

在此呼叫期間移除地圖中的標記或變更地圖的所選標記,會產生未定義的行為。

傳回:
指定標記的自訂資訊視窗,nil 代表預設標記
- (nullable UIView *) mapView: (GMSMapView *) mapView
tagInfoContents: (GMSMarker *) marker
[optional]

mapView:markerInfoWindow: 傳回 nil 時呼叫。

如果這個方法傳回檢視畫面,會置於預設資訊視窗頁框中。如果這個方法傳回 nil,則系統會改用預設呈現方式。

參數:
mapView已按下的地圖檢視。
馬克筆已按下的標記。
傳回:
在資訊視窗中顯示為內容的自訂檢視畫面,或改為使用預設內容轉譯
- (void) mapView: (GMSMapView *) mapView
hasCloseInfoWindowOfMarker: (GMSMarker *) marker
[optional]

標記的資訊視窗關閉時,會呼叫此方法。

- (void) mapView: (GMSMapView *) mapView
hasBeginDraggingMarker: (GMSMarker *) marker
[optional]

在標記上開始拖曳時呼叫。

- (void) mapView: (GMSMapView *) mapView
doEndDraggingMarker: (GMSMarker *) marker
[optional]

在拖曳標記結束之後呼叫。

- (void) mapView: (GMSMapView *) mapView
doDragMarker: (GMSMarker *) marker
[optional]

在拖曳標記時呼叫。

- (BOOL) didTapMyLocationButtonForMapView: (GMSMapView *) mapView [optional]

在輕觸「我的位置」按鈕時呼叫。

傳回:
是,如果事件監聽器取用了事件 (意即不應發生預設行為),否則就「否」表示「否」(即應發生預設行為)。預設行為是讓攝影機移動到裝置位置的中心。
- (void) mapView: (GMSMapView *) mapView
hasTapMyLocation: (CLLocationCoordinate2D)  location
[optional]

在輕觸「我的位置」點時呼叫。

參數:
mapView使用者輕觸的地圖檢視。
位置使用者輕觸位置圓點時的裝置位置。
- (void) mapViewDidStartTileRendering: (GMSMapView *) mapView [optional]

當剛要求圖塊或標籤才開始算繪時,會呼叫此方法。

- (void) mapViewDidFinishTileRendering: (GMSMapView *) mapView [optional]

所有圖塊都載入 (或永久失敗) 及標籤轉譯完畢時,會呼叫此方法。

- (void) mapViewSnapshotReady: (GMSMapView *) mapView [optional]

地圖穩定 (載入方塊、已轉譯的標籤、相機閒置) 和疊加層物件轉譯時,會呼叫此方法。

- (void) mapView: (GMSMapView *) mapView
hasChangeMapCapabilities: (GMSMapCapabilityFlags) mapCapabilities
[optional]

每次地圖功能變更時呼叫。

參數:
mapView變更 mapCapabilities 的地圖檢視。
mapCapabilities代表地圖上目前功能的旗標。
- (void) mapView: (GMSMapView *) mapView
hasTapFeatures: (NSArray< id< GMSFeature >> *) 功能
inFeatureLayer: (GMSFeatureLayer *) featureLayer
位置: (CLLocationCoordinate2D)  location
[optional]

在輕觸資料導向樣式地圖項目圖層中的地圖項目後,會呼叫。

系統會移除所有與輕觸點重疊的功能。如果地圖項目屬於不同的地圖項目圖層,系統會多次呼叫這個方法 (每個地圖項目圖層一次)。

在不同的地圖項目圖層上,或在地圖項目圖層和其他實體上的事件之間,不保證會依序進行順序。

參數:
mapView使用者輕觸的地圖檢視。
功能圖層中點擊的所有地圖項目陣列。
featureLayer包含該項功能的地圖項目圖層。
位置實際輕觸點的位置。