API 中的地圖由 GMSMapView
類別表示,這是 UIView
的子類別。地圖是 Maps SDK for iOS 中最主要的物件,可提供必要方法,用於新增、移除及管理其他物件,例如標記和多邊形。
簡介
您可以使用 Maps SDK for iOS 在 iOS 應用程式中顯示 Google 地圖。這些地圖和您在 Google 地圖 iOS 應用程式中看到的地圖外觀相同,且 SDK 也提供許多相同的功能。
除了對應功能之外,API 也支援一系列與 iOS UI 模型一致的互動。舉例來說,您可以定義回應者來回應使用者的手勢 (例如輕觸和雙擊),藉此設定與地圖的互動方式。
使用 Map 物件時,主要類別為 GMSMapView
類別。GMSMapView
會自動處理下列作業:
- 連線到 Google 地圖服務。
- 下載地圖圖塊。
- 在裝置螢幕上顯示圖塊。
- 顯示各種控制項,如平移和縮放。
- 藉由移動地圖及放大/縮小,回應平移和縮放手勢。
- 藉由傾斜地圖的觀看角度,回應雙指手勢。
除了這些自動操作之外,您還可以透過 GMSMapView
類別公開的屬性和方法,控制地圖的行為和外觀。GMSMapView
可讓您新增及移除標記、地圖疊加層和折線,變更顯示的地圖類型,以及透過 GMSCameraPosition
類別控制在地圖上顯示的內容。
使用 SwiftUI 建構地圖
SwiftUI 提供另一種使用宣告式方法建立 UI 的方式。您只需告訴 SwiftUI 要如何顯示檢視畫面,以及所有不同的狀態,系統就會完成其餘的工作。當事件或使用者動作導致基礎狀態變更時,SwiftUI 會處理更新檢視畫面。
Maps SDK for iOS 是建構在 UIKit
之上,且不提供與 SwiftUI 相容的檢視畫面。在 SwiftUI 中新增地圖時,必須符合 UIViewRepresentable
或 UIViewControllerRepresentable
。如需瞭解詳情,請參閱程式碼研究室「使用 SwiftUI 在 iOS 應用程式中加入地圖」。
新增地圖
加入地圖的基本步驟如下:
如要取得 SDK、取得 API 金鑰,以及新增必要的架構,請按照下列步驟操作:
在
AppDelegate
中,將您的 API 金鑰提供給GMSServices
上的provideAPIKey:
類別方法。建立或更新
ViewController
。如果地圖會在這個 View Controller 顯示時顯示,請務必在viewDidLoad
方法中建立地圖。在地圖檢視畫面初始化時,請使用
GMSMapViewOptions
設定設定選項。房源包括frame
、camera
、mapID
、backgroundColor
或screen
。使用
GMSCameraPosition
物件設定地圖選項camera
屬性。這會指定地圖的中心和縮放等級。使用
GMSMapView
options:
方法建立並例項化GMSMapView
類別。如果要將此地圖用於 View Controller 的唯一檢視畫面,地圖選項frame
的預設值CGRectZero
可用於檢視畫面frame
,系統會自動調整地圖大小。將
GMSMapView
物件設為 View Controller 的 View。例如self.view = mapView;
。
下面的示例添加一個地圖,中心位於新加坡市中心,到一個應用程序。
Swift
import GoogleMaps class MapObjects : UIViewController { override func viewDidLoad() { super.viewDidLoad() let options = GMSMapViewOptions() options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) options.frame = self.view.bounds; let mapView = GMSMapView(options:options) self.view = mapView } }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView; }
完成這些步驟後,您可以進一步設定 GMSMapView
物件。
後續步驟
完成這些步驟後,您可以設定地圖設定。