區域疊加層

選取平台: Android iOS JavaScript

區域疊加層是指在地圖上與經緯度相關聯的疊加層 因此當您拖曳或縮放地圖時,這些位置會隨之移動。

簡介

區域疊加層是指固定於地圖上的圖片。取消喜歡 標記,區域疊加層的方向是根據地球表面而定 因此旋轉、傾斜或縮放地圖時,地圖也會隨之改變 圖片的方向。

如要新增區域疊加層,請建立定義這兩種區域的 GMSGroundOverlay 物件 一個圖示和邊界如果無法指定任一項目,就會導致區域疊加層 才不會顯示在地圖上您可以選擇指定其他設定 會影響圖片在地圖上的位置。將 必要選項,請設定這個物件的 map 屬性來加入疊加層。

新增疊加層

  1. 將新的 GMSGroundOverlay 物件執行個體化
  2. icon 屬性設為 UIImage 的例項。
  3. bounds 屬性設為 GMSCoordinateBounds 的例項。 邊界代表圖片的西南角和東北角。
  4. 視需要設定選用屬性,例如 bearingzoomLevel
  5. 設定 map 屬性 - 圖片會顯示在地圖上。

以下範例說明如何將區域疊加層加到現有的 GMSMapView 物件。

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView
      

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;
      

移除疊加層

如要移除地圖上的區域疊加層,請設定 GMSGroundOverlaymap 屬性設為 nil。或者,您也可以選擇 的疊加層 (包括透過呼叫 GMSMapView clear 方法。

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

如果你之後要修改區域疊加層,請將其加到 地圖,請務必保留 GMSGroundOverlay 物件。你可以 稍後變更此物件即可修改區域疊加層。

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

活動

您可以監聽地圖上發生的事件,例如使用者輕觸 重疊。若要監聽事件,您必須實作 GMSMapViewDelegate 通訊協定。詳情請參閱 事件指南,以及 GMSMapViewDelegate