在 API 中,地图由 GMSMapView
类(UIView
的子类)表示。地图是 Maps SDK for iOS 中最重要的对象,提供了添加、移除和管理其他对象(例如标记和多段线)的必要方法。
简介
借助 Maps SDK for iOS,您可以在 iOS 应用中显示 Google 地图。这些地图与您在 Google 地图 iOS 应用中所看到的地图具有相同的外观,并且该 SDK 公开的许多功能也是相同的。
除了地图绘制功能外,该 API 还支持符合 iOS 界面模式的一整套互动方式。例如,您可以通过定义可响应用户手势(如点按和双击)的响应器来设置与地图的交互。
使用 Map 对象时的关键类是 GMSMapView
类。GMSMapView
会自动处理以下操作:
- 连接到 Google 地图服务。
- 下载地图图块。
- 在设备屏幕上显示图块。
- 显示各种控件,例如平移和缩放控件。
- 通过移动和缩放地图响应平移和缩放手势。
- 通过倾斜地图的视角来响应双指手势。
除了这些自动操作外,您还可以通过 GMSMapView
类公开的属性和方法来控制地图的行为和外观。您可以使用 GMSMapView
添加和移除标记、地面叠加层和多段线,更改已显示的地图类型,并通过 GMSCameraPosition
类控制地图上显示的内容。
使用 SwiftUI 构建地图
SwiftUI 提供了一种使用声明式方法创建界面的另一种方式。您只需告诉 SwiftUI 您希望视图如何随着其所有不同的状态而变化,系统将完成其余工作。每当底层状态因事件或用户操作而变化时,SwiftUI 都会更新视图。
Maps SDK for iOS 是在 UIKit
的基础上构建的,且不提供与 SwiftUI 兼容的视图。若要在 SwiftUI 中添加地图,必须符合 UIViewRepresentable
或 UIViewControllerRepresentable
。如需了解详情,请参阅使用 SwiftUI 将地图添加到您的 iOS 应用 Codelab。
添加地图
添加地图的基本步骤如下:
如需获取 SDK 和 API 密钥并添加所需的框架,请按以下文档中的步骤操作:
在
AppDelegate
中,将您的 API 密钥提供给GMSServices
上的provideAPIKey:
类方法。创建或更新
ViewController
。如果要在此视图控制器变为可见时显示地图,请务必在viewDidLoad
方法中创建它。初始化地图视图时,请使用
GMSMapViewOptions
设置配置选项。属性包括frame
、camera
、mapID
、backgroundColor
或screen
。使用
GMSCameraPosition
对象设置地图选项camera
属性。这会指定地图的中心位置和缩放级别。使用
GMSMapView
options:
方法创建并实例化GMSMapView
类。如果此地图将用作视图控制器的唯一视图,则可以将地图选项frame
的默认值CGRectZero
用作视图frame
,这样地图就会自动调整大小。将
GMSMapView
对象设置为视图控制器的视图。例如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
对象。
后续步骤
完成上述步骤后,就可以配置地图设置了。