Karte mit einer Markierung hinzufügen

In dieser Anleitung wird gezeigt, wie Sie Ihrer iOS-App eine einfache Google-Karte mit einer Markierung hinzufügen. Sie eignet sich für Nutzer mit Anfänger- oder Vorkenntnissen in Swift oder Objective-C sowie allgemeinen Kenntnissen von Xcode. Einen Leitfaden zum Erstellen von Karten für Fortgeschrittene finden Sie im Entwicklerhandbuch.

Mit dieser Anleitung erstellen Sie die folgende Karte. Die Markierung befindet sich an Sydney, Australien.

Screenshot einer Karte mit einer Markierung über Sydney

Code abrufen

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

Alternativ können Sie auf die folgende Schaltfläche klicken, um den Quellcode herunterzuladen:

Code eingeben

Swift

/*
 * Copyright 2020 Google Inc. All rights reserved.
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

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 mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
        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

/*
* Copyright 2020 Google Inc. All rights reserved.
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

#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];
  GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
  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

      

Mehr erfahren

Swift-Paketmanager

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

  1. Prüfen Sie, ob Sie alle Maps SDK for iOS-Abhängigkeiten entfernt haben.
  2. Öffnen Sie ein Terminalfenster und gehen Sie zum Verzeichnis tutorials/mapwithmarker.
  3. Achten Sie darauf, dass der Xcode-Arbeitsbereich geschlossen ist, 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. Wählen Sie Datei > Paketabhängigkeiten hinzufügen aus.
  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 Paket hinzufügen.
  7. Möglicherweise müssen Sie den Paketcache über Datei > Pakete > Paket-Cache zurücksetzen zurücksetzen.

Mit CocoaPods

  1. Laden Sie Xcode Version 14.0 oder höher herunter und installieren Sie sie.
  2. Wenn du CocoaPods noch nicht hast, installiere es unter macOS, indem du den folgenden Befehl über das Terminal ausführst:
    sudo gem install cocoapods
  3. Rufen Sie das Verzeichnis tutorials/map-with-marker auf.
  4. Führe den Befehl pod install aus. Dadurch wird das im Podfile angegebene Maps SDK zusammen mit allen Abhängigkeiten installiert.
  5. Führen Sie pod outdated aus, um die installierte Pod-Version mit neuen Updates zu vergleichen. Wenn eine neue Version erkannt wird, führen Sie pod update aus, um Podfile zu aktualisieren und das neueste SDK zu installieren. Weitere Informationen findest du im CocoaPods-Leitfaden.
  6. Öffnen Sie mit einem Doppelklick die Datei map-with-marker.xcworkspace des Projekts, um sie in Xcode zu öffnen. Sie müssen die Datei .xcworkspace verwenden, um das Projekt zu öffnen.

API-Schlüssel abrufen und die erforderlichen APIs aktivieren

Als letzten Schritt benötigen Sie noch einen Google API-Schlüssel, der eine Berechtigung zur Verwendung des Maps SDK for iOS hat. Klicken Sie auf die folgende Schaltfläche, um einen Schlüssel anzufordern und die API zu aktivieren.

Jetzt starten

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

API-Schlüssel zur App hinzufügen

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

  1. Der Datei wurde die folgende Importanweisung hinzugefügt:
    import GoogleMaps
  2. Bearbeiten Sie die folgende Zeile in der Methode application(_:didFinishLaunchingWithOptions:) 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 einen Simulator aus dem Menü für Xcode-Schemas aus.
  2. Wenn Sie ein Gerät verwenden, achten Sie darauf, dass die Standortdienste aktiviert sind. 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).
    • Die App wird von Xcode erstellt und dann auf dem Gerät oder im Simulator ausgeführt.
    • 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. Suchen Sie in der Debugging-Konsole von Xcode nach Fehlermeldungen zum API-Schlüssel.
  • Wenn Sie den API-Schlüssel durch den iOS-Paket-Identifikator eingeschränkt haben, bearbeiten Sie den Schlüssel und fügen Sie den Paket-Identifikator für die App hinzu: com.google.examples.map-with-marker.
  • Achten Sie auf eine gute WLAN- oder GPS-Verbindung.
  • Verwenden Sie die Xcode-Debugging-Tools, um Logs aufzurufen und Fehler in der Anwendung zu beheben.

Code verstehen

  1. Erstellen Sie eine Karte und legen Sie sie als Ansicht in viewDidLoad() fest.

    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 mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    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];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    self.view = mapView;
          
  2. Fügen Sie der Karte in viewDidLoad() eine Markierung hinzu.

    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 zeigt das Maps SDK for iOS den Inhalt des Infofensters an, wenn der Nutzer auf eine Markierung tippt. Wenn Sie mit der Standardfunktionsweise zufrieden sind, müssen Sie keinen Klick-Listener für die Markierung hinzufügen.

Glückwunsch! 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 Sie das Maps SDK for iOS verwenden.

Nächste Schritte

Weitere Informationen zum Kartenobjekt und den Möglichkeiten mit Markierungen