Karten werden in der API durch die Klasse GMSMapView
dargestellt, eine Unterklasse von UIView
. 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.
Einleitung
Mit dem Maps SDK for iOS können Sie eine Google-Karte in Ihrer iOS-App darstellen. Diese Karten sehen genauso aus wie in der Google Maps App für iOS und das SDK stellt viele derselben Funktionen bereit.
Zusätzlich zu den Zuordnungsfunktionen unterstützt die API auch eine Reihe von Interaktionen, die mit dem iOS-UI-Modell kompatibel sind. Sie können beispielsweise Interaktionen mit einer Karte einrichten, indem Sie Teilnehmer definieren, die auf Nutzergesten wie Tippen und Doppeltippen reagieren.
Die wichtigste Klasse bei der Arbeit mit einem Kartenobjekt ist die Klasse GMSMapView
.
GMSMapView
führt die folgenden Vorgänge automatisch aus:
- 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 Touch-Gesten mit zwei Fingern durch Neigen des Blickwinkels der Karte reagieren
Zusätzlich zu diesen automatischen Vorgängen kannst du das Verhalten und die Darstellung der Karte über die von der Klasse GMSMapView
bereitgestellten Eigenschaften und Methoden 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 zum Erstellen einer UI mit einem deklarativen Ansatz. Sie legen SwiftUI fest, wie Ihre Ansicht und die verschiedenen Stadien dargestellt werden sollen, und 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 mit SwiftUI kompatible Ansicht. Zum Hinzufügen von Karten in SwiftUI müssen entweder UIViewRepresentable
oder UIViewControllerRepresentable
entsprechen. Weitere Informationen finden Sie im Codelab zum Hinzufügen einer Karte mit SwiftUI zu einer iOS-App.
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 der Anleitung unter:
Geben Sie in der
AppDelegate
-Datei Ihren API-Schlüssel für dieprovideAPIKey:
-Klassenmethode aufGMSServices
an.ViewController
erstellen oder aktualisieren. Wenn die Karte eingeblendet wird, sobald dieser Ansichts-Controller sichtbar wird, müssen Sie ihn innerhalb der MethodeviewDidLoad
erstellen.Legen Sie beim Initialisieren der Kartenansicht mit
GMSMapViewOptions
Konfigurationsoptionen fest. Zu den Properties gehörenframe
,camera
,mapID
,backgroundColor
oderscreen
.Legen Sie die
camera
-Eigenschaft der Kartenoptionen mit einemGMSCameraPosition
-Objekt fest. Hiermit werden der Mittelpunkt und die Zoomstufe der Karte angegeben.Erstellen und instanziieren Sie eine
GMSMapView
-Klasse mit der MethodeGMSMapView
options:
. Wenn diese Karte als einzige Ansicht des Ansichts-Controllers verwendet werden soll, kann derframe
-Standardwert der KartenoptionCGRectZero
alsframe
für die Ansicht verwendet werden. Die Größe der Karte wird dann 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 diese Schritte abgeschlossen haben, können Sie die Karteneinstellungen konfigurieren.