Karten werden in der API durch die Klasse GMSMapView dargestellt, die eine abgeleitete Klasse von UIView ist. Die Karte ist das wichtigste Objekt im Maps SDK for iOS und bietet die erforderlichen Methoden zum Hinzufügen, Entfernen und Verwalten anderer Objekte wie Markierungen und Polylinien.
Einführung
Mit dem Maps SDK for iOS können Sie eine Google-Karte in Ihrer iOS-Anwendung anzeigen. Diese Karten sehen genauso aus wie die Karten in der Google Maps iOS-App und das SDK bietet viele der gleichen Funktionen.
Neben der Kartenfunktion unterstützt die API auch eine Reihe von Interaktionen, die mit dem iOS-UI-Modell konsistent sind. Sie können beispielsweise Interaktionen mit einer Karte einrichten, indem Sie Responder definieren, die auf Nutzergesten wie Tippen und Doppeltippen reagieren.
Die wichtigste Klasse bei der Arbeit mit einem Map-Objekt ist die GMSMapView-Klasse.
GMSMapView verarbeitet die folgenden Vorgänge automatisch:
- Verbindung zum Google Maps-Dienst herstellen
- Kartenkacheln herunterladen
- Kacheln auf dem Gerätebildschirm anzeigen
- Verschiedene Steuerelemente anzeigen, z. B. zum Schwenken und Zoomen
- Auf Touch-Gesten zum Schwenken und Zoomen reagieren, indem die Karte verschoben oder heran- bzw. herausgezoomt wird
- Reagieren auf Gesten mit zwei Fingern durch Neigen des Blickwinkels der Karte.
Zusätzlich zu diesen automatischen Vorgängen können Sie das Verhalten und die Darstellung der Karte über die Attribute und Methoden der Klasse GMSMapView steuern. Mit GMSMapView können Sie Markierungen, Boden-Overlays und Polylinien hinzufügen und entfernen, den angezeigten Kartentyp ändern und über die Klasse GMSCameraPosition steuern, was auf der Karte angezeigt wird.
Karten mit SwiftUI erstellen
SwiftUI bietet eine zusätzliche Möglichkeit, Benutzeroberflächen mit einem deklarativen Ansatz zu erstellen. Sie teilen SwiftUI mit, wie Ihre Ansicht aussehen soll, und geben alle verschiedenen Status dafür an. Den Rest erledigt das System. SwiftUI aktualisiert die Ansicht, wenn sich der zugrunde liegende Status aufgrund eines Ereignisses oder einer Nutzeraktion ändert.
Das Maps SDK for iOS basiert auf UIKit und bietet keine SwiftUI-kompatible Ansicht. Wenn Sie Karten in SwiftUI hinzufügen möchten, müssen Sie entweder UIViewRepresentable oder UIViewControllerRepresentable verwenden. Weitere Informationen finden Sie im Codelab Karten mit SwiftUI in iOS-Apps einbinden.
Karte hinzufügen
Das Hinzufügen einer Karte umfasst die folgenden grundlegenden Schritte:
Um das SDK zu erhalten, müssen Sie einen API-Schlüssel anfordern und die erforderlichen Frameworks hinzufügen. Folgen Sie dazu den Anleitungen unter:
Geben Sie in Ihrer
AppDelegateIhren API-Schlüssel für die KlassenmethodeprovideAPIKey:fürGMSServicesan.ViewControllererstellen oder aktualisieren. Wenn die Karte angezeigt wird, wenn dieser Ansichts-Controller sichtbar wird, müssen Sie sie in der MethodeviewDidLoaderstellen.Legen Sie beim Initialisieren der Kartenansicht die Konfigurationsoptionen mit
GMSMapViewOptionsfest. Zu den Attributen gehörenframe,camera,mapID,backgroundColoroderscreen.Legen Sie die Kartenoptionen-Eigenschaft
cameramit einemGMSCameraPosition-Objekt fest. Damit werden der Mittelpunkt und die Zoomstufe der Karte festgelegt.Erstellen und instanziieren Sie eine
GMSMapView-Klasse mit deroptions:-MethodeGMSMapView. Wenn diese Karte als einzige Ansicht des Ansichts-Controllers verwendet werden soll, kann der StandardwertCGRectZeroder Kartenoptionframeals Ansichtframeverwendet werden. Die Größe der Karte wird automatisch angepasst.Legen Sie das
GMSMapView-Objekt als Ansicht des Ansichts-Controllers fest. Beispiel:self.view = mapView;
Im folgenden Beispiel wird eine Karte mit der Innenstadt von Singapur in der Mitte zu einer App hinzugefügt.
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; }
Nachdem Sie diese Schritte ausgeführt haben, können Sie das GMSMapView-Objekt weiter konfigurieren.
Nächste Schritte
Nachdem Sie die Schritte oben abgeschlossen haben, können Sie die Karteneinstellungen konfigurieren.