开始使用
您必须先配置开发环境,然后才能试用该示例代码。如需了解详情,请参阅 Maps SDK for iOS 代码示例。
查看代码
Swift
import GoogleMaps import UIKit // Sample code for adding a marker. class MarkersViewController: UIViewController { private lazy var sydneyMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) private lazy var melbourneMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView sydneyMarker.title = "Sydney" sydneyMarker.snippet = "Population: 4,605,992" sydneyMarker.isFlat = false sydneyMarker.rotation = 30 print("sydneyMarker: \(sydneyMarker)") let australiaMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -27.994401, longitude: 140.07019)) australiaMarker.title = "Australia" australiaMarker.appearAnimation = .pop australiaMarker.isFlat = true australiaMarker.isDraggable = true australiaMarker.groundAnchor = CGPoint(x: 0.5, y: 0.5) australiaMarker.icon = UIImage(named: "australia") australiaMarker.map = mapView mapView.selectedMarker = sydneyMarker navigationItem.rightBarButtonItem = UIBarButtonItem( barButtonSystemItem: .add, target: self, action: #selector(tapAdd)) } @objc func tapAdd() { if sydneyMarker.map == nil { sydneyMarker.map = mapView } else { sydneyMarker.map = nil } melbourneMarker.title = "Melbourne" melbourneMarker.snippet = "Population: 4,169,103" melbourneMarker.map = mapView } }
Objective-C
#import "GoogleMapsDemos/Samples/MarkersViewController.h" #import <GoogleMaps/GoogleMaps.h> @implementation MarkersViewController { GMSMarker *_sydneyMarker; GMSMarker *_melbourneMarker; GMSMarker *_fadeInMarker; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 longitude:144.966085 zoom:4]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _sydneyMarker = [[GMSMarker alloc] init]; _sydneyMarker.title = @"Sydney"; _sydneyMarker.snippet = @"Population: 4,605,992"; _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); _sydneyMarker.flat = NO; _sydneyMarker.rotation = 30.0; NSLog(@"sydneyMarker: %@", _sydneyMarker); GMSMarker *australiaMarker = [[GMSMarker alloc] init]; australiaMarker.title = @"Australia"; australiaMarker.position = CLLocationCoordinate2DMake(-27.994401, 140.07019); australiaMarker.appearAnimation = kGMSMarkerAnimationPop; australiaMarker.flat = YES; australiaMarker.draggable = YES; australiaMarker.groundAnchor = CGPointMake(0.5, 0.5); australiaMarker.icon = [UIImage imageNamed:@"australia"]; australiaMarker.map = mapView; _fadeInMarker = [[GMSMarker alloc] init]; _fadeInMarker.title = @"Australia"; _fadeInMarker.position = CLLocationCoordinate2DMake(-29.9959, 145.0719); _fadeInMarker.appearAnimation = kGMSMarkerAnimationFadeIn; _fadeInMarker.icon = [UIImage imageNamed:@"australia"]; // Set the marker in Sydney to be selected mapView.selectedMarker = _sydneyMarker; self.view = mapView; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(didTapAdd)]; } - (void)didTapAdd { if (_sydneyMarker.map == nil) { _sydneyMarker.map = (GMSMapView *)self.view; } else { _sydneyMarker.map = nil; } _melbourneMarker.map = nil; _melbourneMarker = [[GMSMarker alloc] init]; _melbourneMarker.title = @"Melbourne"; _melbourneMarker.snippet = @"Population: 4,169,103"; _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); _melbourneMarker.map = (GMSMapView *)self.view; if (_fadeInMarker.map) { _fadeInMarker.map = nil; } else { _fadeInMarker.map = (GMSMapView *)self.view; } } @end
在本地运行完整的示例应用
您可以从 GitHub 下载归档,获取 Maps SDK for iOS 示例应用。请按照以下步骤安装并试用 Maps SDK for iOS 示例应用。
- 运行
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git
以将示例代码库克隆到本地目录。 打开一个终端窗口,然后导航到您克隆示例文件的目录,并展开 GoogleMaps 目录:
Swift
cd maps-sdk-for-ios-samples-main/GoogleMaps-Swift
pod install
open GoogleMapsSwiftDemos.xcworkspace
Objective-C
cd maps-sdk-for-ios-samples-main/GoogleMaps
pod install
open GoogleMapsDemos.xcworkspace
- 在 Xcode 中,按 compile 按钮使用当前架构构建应用。build 会产生错误,提示您在
SDKConstants.swift
文件中(对于 Swift)或SDKDemoAPIKey.h
文件中输入 API 密钥(对于 Objective-C)。 - 如果您尚未获得 API 密钥,请按照说明在 Google Cloud 控制台中设置项目并获取 API 密钥。在 Cloud 控制台上配置密钥时,您可以将密钥限制为示例应用的软件包标识符,以确保只有您的应用可以使用该密钥。SDK 示例应用的默认软件包标识符为
com.example.GoogleMapsDemos
。 - 修改
SDKConstants.swift
文件(Swift 版)或SDKDemoAPIKey.h
文件(Objective-C 版),将您的 API 密钥粘贴到apiKey
或kAPIKey
常量的定义中。例如:Swift
static let apiKey = "YOUR_API_KEY"
Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- 在
SDKConstants.swift
文件 (Swift) 或SDKDemoAPIKey.h
文件 (Objective-C) 中,移除以下行,因为该行用于注册用户定义的问题:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- 构建并运行项目。出现 iOS 模拟器窗口,显示 Maps SDK 演示应用列表。
- 从显示的选项中选择其一,对 Maps SDK for iOS 的其中一项功能进行试验。
- 如果系统提示您允许 GoogleMapsDemos 获取您的位置信息,请选择允许。