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 in der iOS-App Google Maps und das SDK stellt viele derselben Funktionen bereit.
Zusätzlich zur Kartendarstellungsfunktion unterstützt die API auch zahlreiche Interaktionen, die mit dem iOS-UI-Modell kompatibel sind. Zum Einrichten von Interaktionen mit einer Karte kannst du zum Beispiel Responder definieren, die auf Nutzergesten reagieren, z. B. Tippen und Doppeltippen.
Die wichtigste Klasse bei einem Kartenobjekt ist die Klasse GMSMapView
.
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
- Auf Wischbewegungen mit zwei Fingern reagieren, um den Blickwinkel der Karte zu ändern
Zusätzlich zu diesen automatischen Vorgängen kannst du das Verhalten und das Aussehen der Karte über die Eigenschaften 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, UIs mit einem deklarativen Ansatz zu erstellen. Sie geben SwiftUI an, wie Ihre Ansicht aussehen soll, und legen alle verschiedenen Status dafür fest. Das System erledigt den Rest. SwiftUI aktualisiert die Ansicht immer dann, 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
AppDelegate
Ihren API-Schlüssel für dieprovideAPIKey:
-Klassenmethode aufGMSServices
an.Erstellen oder aktualisieren Sie eine
ViewController
. Wenn die Karte angezeigt wird, wenn dieser Ansichtscontroller sichtbar wird, müssen Sie sie in der MethodeviewDidLoad
erstellen.Legen Sie beim Initialisieren der Kartenansicht Konfigurationsoptionen mit
GMSMapViewOptions
fest. Zu den Properties gehörenframe
,camera
,mapID
,backgroundColor
oderscreen
.Legen Sie die Eigenschaft
camera
der Kartenoptionen mit einemGMSCameraPosition
-Objekt fest. Damit wird die Mitte und die Zoomstufe der Karte festgelegt.Erstellen und instanziieren Sie eine
GMSMapView
-Klasse mit der MethodeGMSMapView
options:
. Wenn diese Karte als einzige Ansicht des View-Controllers verwendet werden soll, kann der StandardwertCGRectZero
der Kartenoptionframe
als Ansichtframe
verwendet werden. Die Karte wird dann automatisch neu skaliert.Legen Sie das
GMSMapView
-Objekt als Ansicht des View 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.