您已全部設定完成!

若要開始開發,請參閱我們的開發人員文件

啟用 Google Maps SDK for iOS

為協助您開始,我們將先引導您使用 Google Developers Console 來執行一些動作:

  1. 建立或選擇專案
  2. 啟用 Google Maps SDK for iOS
  3. 建立適當的金鑰
繼續

地面疊加層

地面疊加層為在地圖上與緯度/經度座標連結的疊加層,因此它們會隨著您拖曳或縮放地圖而移動。

簡介

地面疊加層是固定於地圖上的影像。 地面疊加層和標記不同之處,在於它的方向是朝著地球表面(而非螢幕)貼合,因此在旋轉、傾斜或縮放地圖時,將會同時變更影像的方向。

如果要新增地面疊加層,請建立同時定義圖示與邊界的 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

let camera = GMSCameraPosition.camera(withLatitude:40.71,
                                      longitude: -74.22,
                                      zoom:11)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
...
mapView.clear()

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.742
                                                        longitude:-74.174
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
...
[mapView clear];

如果要在將地面疊加層新增至地圖之後,對該地面疊加層進行修改,請務必保留 GMSGroundOverlay 物件。 您稍後可以透過變更此物件以修改地面疊加層。

Swift

let overlay = GMSGroundOverlay(position: newark, icon: icon, zoomLevel: 10)
overlay.map = mapView
...
overlay.isTappable = true

Objective-C

GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithPosition:newark
                                           icon:icon
                                      zoomLevel:10];
overlay.map = mapView;
...
overlay.tappable = YES;

事件

您可以監聽地圖上發生的事件(例如當使用者點選疊加層時)。 如果要監聽事件,您必須實作 GMSMapViewDelegate 通訊協定。 請參閱事件指南GMSMapViewDelegate 上的方法清單。

傳送您對下列選項的寶貴意見...

這個網頁
Google Maps SDK for iOS
Google Maps SDK for iOS
需要協助嗎?請前往我們的支援網頁