Karte mit einer Markierung hinzufügen

In dieser Anleitung erfahren Sie, wie Sie Ihrer iOS-App eine Google-Karte mit einer Markierung hinzufügen. Sie eignet sich für Einsteiger oder Nutzer mit entsprechenden Vorkenntnissen in Swift oder Objective-C und allgemeinen Kenntnissen in Xcode. Einen Leitfaden zum Erstellen von Karten für fortgeschrittene Nutzer finden Sie im Entwicklerhandbuch.

In dieser Anleitung erstellen Sie die folgende Karte. Die Markierung befindet sich in Sydney, Australien.

Screenshot einer Karte mit einer Markierung über Sydney

Code abrufen

Klonen Sie das Google Maps iOS-Beispiel-Repository auf GitHub oder laden Sie es herunter.

Alternativ können Sie auf den folgenden Button klicken, um den Quellcode herunterzuladen:

Gib mir den Code

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        let options = GMSMapViewOptions()
        options.camera = camera
        options.frame = self.view.frame
        let mapView = GMSMapView(options: options)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}
      

Objective-C

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.frame = self.view.frame;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.myLocationEnabled = YES;
  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end
      

Jetzt starten

Swift Package Manager

Das Maps SDK for iOS kann mit dem Swift Package Manager installiert werden.

  1. Entfernen Sie alle vorhandenen Maps SDK for iOS-Abhängigkeiten.
  2. Öffnen Sie ein Terminalfenster und rufen Sie das Verzeichnis tutorials/map-with-marker auf.
  3. Schließen Sie Ihren Xcode-Arbeitsbereich und führen Sie die folgenden Befehle aus:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. Öffnen Sie Ihr Xcode-Projekt und löschen Sie die Podfile-Datei.
  5. Gehen Sie zu File > Add Package Dependencies.
  6. Geben Sie https://github.com/googlemaps/ios-maps-sdk als URL ein, drücken Sie die Eingabetaste, um das Paket abzurufen, und klicken Sie auf Add Package (Paket hinzufügen).
  7. Möglicherweise müssen Sie den Paket-Cache über File > Packages > Reset Package Cache zurücksetzen.

API-Schlüssel abrufen und die erforderlichen APIs aktivieren

Als letzten Schritt benötigen Sie noch einen Google API-Schlüssel, der zum Verwenden des Maps SDK for iOS berechtigt. Klicken Sie auf den folgenden Button, um einen Schlüssel anzufordern und die API zu aktivieren.

Jetzt starten

Weitere Informationen finden Sie unter API-Schlüssel verwenden.

API-Schlüssel zur App hinzufügen

Füge deinen API-Schlüssel folgendermaßen in AppDelegate.swift ein:

  1. Beachten Sie, dass der Datei die folgende Importanweisung hinzugefügt wurde:
    import GoogleMaps
  2. Bearbeiten Sie die folgende Zeile in Ihrer application(_:didFinishLaunchingWithOptions:)-Methode und ersetzen Sie YOUR_API_KEY durch Ihren API-Schlüssel:
    GMSServices.provideAPIKey("YOUR_API_KEY")

App erstellen und ausführen

  1. Verbinden Sie ein iOS-Gerät mit Ihrem Computer oder wählen Sie im Xcode-Schemamenü einen Simulator aus.
  2. Wenn Sie ein Gerät verwenden, müssen die Standortdienste aktiviert sein. Wenn Sie einen Simulator verwenden, wählen Sie im Menü Features einen Standort aus.
  3. Klicken Sie in Xcode auf die Menüoption Product/Run (oder das Wiedergabesymbol).
    • Xcode erstellt die App und führt sie dann auf dem Gerät oder im Simulator aus.
    • Es sollte eine Karte mit einer Markierung in der Mitte für Sydney an der Ostküste Australiens angezeigt werden, ähnlich wie das Bild auf dieser Seite.

Fehlerbehebung:

  • Wenn Sie keine Karte sehen, prüfen Sie, ob Sie einen API-Schlüssel erhalten und ihn wie oben beschrieben in die App eingefügt haben. Prüfen Sie, ob es in der Debugging-Konsole von Xcode Fehlermeldungen zum API-Schlüssel gibt.
  • Wenn Sie den API-Schlüssel nach dem iOS-Paket-Identifikator eingeschränkt haben, bearbeiten Sie den Schlüssel, um den Paket-Identifikator für die App hinzuzufügen: com.google.examples.map-with-marker.
  • Sie benötigen eine gute WLAN- oder GPS-Verbindung.
  • Wenn Sie Logs aufrufen und Fehler in der App beheben möchten, können Sie dazu die Debugging-Tools in Xcode verwenden.

Code verstehen

  1. Karte erstellen und als Ansicht in viewDidLoad() festlegen.

    Swift

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
    let options = GMSMapViewOptions()
    options.camera = camera
    let mapView = GMSMapView(options: options)
    view = mapView
          

    Objective-C

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6.0];
    GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
    options.camera = camera;
    GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
    self.view = mapView;
          
  2. Der Karte in viewDidLoad() eine Markierung hinzufügen.

    Swift

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
    marker.title = "Sydney"
    marker.snippet = "Australia"
    marker.map = mapView
          

    Objective-C

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView;
          

Standardmäßig wird vom Maps SDK for iOS der Inhalt des Infofensters angezeigt, wenn der Nutzer auf eine Markierung tippt. Wenn Sie mit dem Standardverhalten zufrieden sind, müssen Sie keinen Click Listener für die Markierung hinzufügen.

Das wars! Sie haben eine iOS-App erstellt, in der eine Google-Karte mit einer Markierung für einen bestimmten Standort angezeigt wird. Außerdem wissen Sie jetzt, wie das Maps SDK for iOS verwendet wird.

Nächste Schritte

Beschäftigen Sie sich ausführlicher mit dem Thema Map-Objekt und den Möglichkeiten, die Markierungen bieten.