Karten werden in der API durch die GMSMapView Klasse 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 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 zur Kartendarstellungsfunktion unterstützt die API auch eine Reihe von Interaktionen, die mit dem iOS-UI-Modell kompatibel sind. Zum Einrichten von Interaktionen mit einer Karte können Sie beispielsweise Responder definieren, die auf Nutzergesten wie Tippen und Doppeltippen reagieren.
Die wichtigste Klasse bei 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 Zwei-Finger-Gesten reagieren, indem der Betrachtungswinkel der Karte geneigt wird
Zusätzlich zu diesen automatischen Vorgängen können Sie das Verhalten und Aussehen der Karte auch über die Eigenschaften und Methoden steuern, die von der Klasse GMSMapView bereitgestellt werden. Mit GMSMapView können Sie Markierungen, Boden
Overlays und Polylinien hinzufügen und entfernen, den Typ der angezeigten Karte ändern und festlegen,
was auf der Karte angezeigt wird, und zwar mit der GMSCameraPosition
Klasse.
Karten mit SwiftUI erstellen
SwiftUI bietet eine zusätzliche Möglichkeit, die Benutzeroberfläche deklarativ zu erstellen. Sie geben SwiftUI an, wie die Ansicht aussehen soll, einschließlich aller verschiedenen Zustände. Das System erledigt den Rest. SwiftUI aktualisiert die Ansicht immer dann, wenn sich der zugrunde liegende Zustand 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 entsprechen. 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
AppDelegateIhren API-Schlüssel an die KlassenmethodeprovideAPIKey:fürGMSServicesweiter.Erstellen oder aktualisieren Sie einen
ViewController. Wenn die Karte angezeigt wird, wenn dieser Ansichtscontroller sichtbar wird, müssen Sie sie in der MethodeviewDidLoaderstellen.Legen Sie beim Initialisieren der Kartenansicht Konfigurationsoptionen mit
GMSMapViewOptionsfest. Zu den Eigenschaften gehörenframe,camera,mapID,backgroundColoroderscreen.Legen Sie die Eigenschaft
camerader Kartenoptionen mit einemGMSCameraPositionObjekt fest. Damit werden der Mittelpunkt und die Zoomstufe der Karte festgelegt.Erstellen und instanziieren Sie eine
GMSMapView-Klasse mit der MethodeGMSMapViewoptions:. Wenn diese Karte als einzige Ansicht des Ansichtscontrollers verwendet werden soll, kann der StandardwertCGRectZeroder Kartenoptionframealsframeder Ansicht verwendet werden. Die Größe der Karte wird automatisch angepasst.Legen Sie das
GMSMapView-Objekt als Ansicht des Ansichtscontrollers 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.