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. Sie bietet die erforderlichen Methoden zum Hinzufügen, Entfernen und Verwalten anderer Objekte wie Markierungen und Polylinien.
Einführung
Mit dem Maps SDK for iOS lässt sich eine Google-Karte in Ihrer iOS-App anzeigen. Diese Karten sehen genauso aus wie in der Google Maps App für iOS und das SDK stellt viele derselben Funktionen bereit.
Neben der Kartenfunktion unterstützt die API auch eine Reihe von Interaktionen, die mit dem iOS-UI-Modell übereinstimmen. Beispielsweise können Sie Interaktionen mit einer Karte einrichten, indem Sie Reaktionen definieren, die auf Nutzergesten reagieren, z. B. Tippen und Doppeltippen.
Die wichtigste Klasse bei der Arbeit mit einem Map-Objekt ist die Klasse GMSMapView
.
GMSMapView
übernimmt die folgenden Vorgänge automatisch:
- Verbindung zum Google Maps-Dienst herstellen
- Kartenkacheln herunterladen
- Kacheln auf dem Gerätebildschirm anzeigen
- Verschiedene Steuerelemente z. B. zum Schwenken und Zoomen anzeigen
- Auf Bewegungen zum Schwenken und Zoomen reagieren, indem die Karte verschoben oder vergrößert bzw. verkleinert wird
- Auf Bewegungen mit zwei Fingern reagieren, indem der Blickwinkel der Karte geneigt wird
Zusätzlich zu diesen automatischen Vorgängen können Sie das Verhalten und die Darstellung der Karte über die Attribute und Methoden steuern, die von der GMSMapView
-Klasse bereitgestellt werden. Mit GMSMapView
können Sie Markierungen, Boden-Overlays und Polylinien hinzufügen und entfernen, den angezeigten Kartentyp ändern und steuern, was auf der Karte über die Klasse GMSCameraPosition
angezeigt wird.
Karten mit SwiftUI erstellen
SwiftUI bietet eine zusätzliche Möglichkeit, eine Benutzeroberfläche mithilfe eines deklarativen Ansatzes zu erstellen. Sie legen SwiftUI fest, wie Ihre Ansicht zusammen mit den verschiedenen Zuständen aussehen soll. Der Rest erledigt das System. 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 noch keine SwiftUI-kompatible Ansicht. Wenn du Karten in SwiftUI hinzufügen möchtest, muss diese entweder UIViewRepresentable
oder UIViewControllerRepresentable
entsprechen. Weitere Informationen finden Sie im Codelab zum Hinzufügen einer Karte zu Ihrer iOS-App mit SwiftUI.
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
den API-Schlüssel für die KlassenmethodeprovideAPIKey:
unterGMSServices
an.Erstellen oder aktualisieren Sie eine
ViewController
. Wenn die Karte angezeigt wird, wenn dieser Ansichts-Controller sichtbar wird, müssen Sie ihn innerhalb derloadView
-Methode erstellen.Erstellen Sie ein
GMSCameraPosition
-Objekt, das den Mittelpunkt und die Zoomstufe der Karte angibt. Wenn Sie das ObjektGMSMapView
instanziieren, müssen Sie das ObjektGMSCameraPosition
als erforderlicher Parameter übergeben.Erstellen und instanziieren Sie eine
GMSMapView
-Klasse mit der MethodemapWithFrame:
.GMSMapView
Wenn diese Karte als einzige Ansicht des Ansichts-Controllers verwendet werden soll, kannCGRectZero
als Frame der Karte verwendet werden. Die Größe der Karte wird automatisch geändert.Legen Sie das Objekt
GMSMapView
als Ansicht des Controllers fest, z.B.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 camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) let mapView = GMSMapView(frame: .zero, camera: camera) self.view = mapView } }
Objective-C
#import "MapObjects.h" @import GoogleMaps; @implementation MapObjects - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; self.view = mapView; } @end
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.