Jetzt starten
Bevor Sie den Beispielcode ausprobieren können, müssen Sie Ihre Entwicklungsumgebung konfigurieren. Weitere Informationen finden Sie unter Maps SDK for iOS – Beispielcode.
Code ansehen
Swift
import GoogleMaps import UIKit class GestureControlViewController: UIViewController { private let holderHeight: CGFloat = 60 private let zoomLabelInset: CGFloat = 16 private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -25.5605, longitude: 133.605097, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() private lazy var zoomSwitch: UISwitch = UISwitch(frame: .zero) override func viewDidLoad() { super.viewDidLoad() view.addSubview(mapView) let holder = UIView(frame: .zero) holder.backgroundColor = UIColor(white: 1, alpha: 0.8) view.addSubview(holder) let zoomLabel = UILabel(frame: .zero) zoomLabel.text = "Zoom gestures" zoomLabel.font = .boldSystemFont(ofSize: 18) holder.addSubview(zoomLabel) // Control zooming. holder.addSubview(zoomSwitch) zoomSwitch.addTarget(self, action: #selector(toggleZoom), for: .valueChanged) zoomSwitch.isOn = true [mapView, holder, zoomLabel, zoomSwitch].forEach({ $0.translatesAutoresizingMaskIntoConstraints = false }) NSLayoutConstraint.activate([ mapView.leftAnchor.constraint(equalTo: view.leftAnchor), mapView.rightAnchor.constraint(equalTo: view.rightAnchor), mapView.topAnchor.constraint(equalTo: view.topAnchor), mapView.bottomAnchor.constraint(equalTo: view.bottomAnchor), holder.heightAnchor.constraint(equalToConstant: holderHeight), holder.centerXAnchor.constraint(equalTo: view.centerXAnchor), holder.widthAnchor.constraint(equalTo: view.widthAnchor), zoomLabel.leftAnchor.constraint(equalTo: holder.leftAnchor, constant: zoomLabelInset), zoomLabel.centerYAnchor.constraint(equalTo: holder.centerYAnchor), zoomSwitch.rightAnchor.constraint(equalTo: holder.rightAnchor, constant: -zoomLabelInset), zoomSwitch.centerYAnchor.constraint( equalTo: holder.centerYAnchor), ]) NSLayoutConstraint.activate([ holder.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor) ]) } @objc func toggleZoom() { mapView.settings.zoomGestures = zoomSwitch.isOn } }
Objective-C
#import "GoogleMapsDemos/Samples/GestureControlViewController.h" #import <GoogleMaps/GoogleMaps.h> @implementation GestureControlViewController { GMSMapView *_mapView; UISwitch *_zoomSwitch; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-25.5605 longitude:133.605097 zoom:3]; _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _mapView.accessibilityIdentifier = @"gestureControlDemoMapView"; self.view = [[UIView alloc] initWithFrame:CGRectZero]; [self.view addSubview:_mapView]; UIView *holder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 59)]; holder.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; holder.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.8f]; [self.view addSubview:holder]; // Zoom label. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 16, 200, 29)]; label.text = @"Zooming?"; label.font = [UIFont boldSystemFontOfSize:18.0f]; label.textAlignment = NSTextAlignmentLeft; label.backgroundColor = [UIColor clearColor]; label.layer.shadowColor = [[UIColor whiteColor] CGColor]; label.layer.shadowOffset = CGSizeMake(0.0f, 1.0f); label.layer.shadowOpacity = 1.0f; label.layer.shadowRadius = 0.0f; [holder addSubview:label]; // Control zooming. _zoomSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(-90, 16, 0, 0)]; _zoomSwitch.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; [_zoomSwitch addTarget:self action:@selector(didChangeZoomSwitch) forControlEvents:UIControlEventValueChanged]; _zoomSwitch.on = YES; [holder addSubview:_zoomSwitch]; } - (void)didChangeZoomSwitch { _mapView.settings.zoomGestures = _zoomSwitch.isOn; } @end
Vollständige Beispielanwendung lokal ausführen
Die Beispiel-App für das Maps SDK for iOS ist als Downloadarchiv auf GitHub verfügbar. So installieren Sie die Maps SDK for iOS-Beispiel-App und probieren sie aus:
- Führen Sie
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitaus, um das Beispiel-Repository in ein lokales Verzeichnis zu klonen. Öffnen Sie ein Terminalfenster, wechseln Sie zu dem Verzeichnis, in das Sie die Beispieldateien geklont haben, und rufen Sie das Verzeichnis „GoogleMaps“ auf:
Swift
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojObjective-C
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Gehen Sie im Xcode-Projekt zu File > Add Package Dependencies (Datei > Paketabhängigkeiten hinzufügen).
Geben Sie
https://github.com/googlemaps/ios-maps-sdkals URL ein, drücken Sie die Eingabetaste, um das Paket abzurufen, und klicken Sie auf Paket hinzufügen. - Drücken Sie in Xcode die Schaltfläche zum Kompilieren, um die App mit dem aktuellen Schema zu erstellen. Beim Erstellen des Builds wird ein Fehler ausgegeben, der Sie auffordert, Ihren API-Schlüssel in die Datei
SDKConstants.swiftfür Swift oder in die DateiSDKDemoAPIKey.hfür Objective-C einzugeben. - Rufen Sie einen API-Schlüssel für Ihr Projekt ab, für das das Maps SDK for iOS aktiviert ist.
- Bearbeiten Sie die Datei
SDKConstants.swiftfür Swift oder die DateiSDKDemoAPIKey.hfür Objective-C und fügen Sie Ihren API-Schlüssel in die Definition der KonstantenapiKeyoderkAPIKeyein. Beispiel:Swift
static let apiKey = "YOUR_API_KEY"Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- Entfernen Sie in der Datei
SDKConstants.swift(Swift) oderSDKDemoAPIKey.h(Objective-C) die folgende Zeile, da sie zum Registrieren des nutzerdefinierten Problems verwendet wird:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- Erstellen Sie das Projekt und führen Sie es aus. Das iOS-Simulationsfenster wird geöffnet und zeigt eine Liste mit Maps SDK-Demos an.
- Wählen Sie eine der angezeigten Optionen aus, um eine Funktion des Maps SDK for iOS auszuprobieren.
- Wenn Sie aufgefordert werden, GoogleMapsDemos den Zugriff auf Ihren Standort zu erlauben, wählen Sie Zulassen aus.