Dans l'API, les cartes sont représentées par la classe GMSMapView
, une sous-classe de UIView
. La carte est l'objet le plus important du SDK Maps pour iOS. Elle fournit les méthodes nécessaires pour ajouter, supprimer et gérer d'autres objets tels que des repères et des polylignes.
Introduction
Le SDK Maps pour iOS vous permet d'afficher une carte Google dans votre application iOS. Ces cartes ont la même apparence que celles que vous voyez dans l'application Google Maps pour iOS, et le SDK présente un grand nombre de fonctionnalités identiques.
En plus de la fonctionnalité de mappage, l'API accepte également un éventail d'interactions cohérentes avec le modèle d'interface utilisateur iOS. Par exemple, vous pouvez configurer des interactions avec une carte en définissant des personnes interrogées qui réagissent aux gestes de l'utilisateur (appuyer et appuyer deux fois, par exemple).
La classe principale lorsque vous utilisez un objet Map est la classe GMSMapView
.
GMSMapView
gère automatiquement les opérations suivantes:
- Connexion au service Google Maps
- Téléchargement des tuiles de carte
- Affichage des tuiles sur l'écran de l'appareil
- Affichage de diverses commandes comme le panoramique et le zoom
- Réponse aux gestes de panoramique et de zoom (déplacement de la carte et zoom avant ou arrière)
- Réponse aux gestes à deux doigts en inclinant l'angle de vue de la carte.
En plus de ces opérations automatiques, vous pouvez contrôler le comportement et l'apparence de la carte via les propriétés et méthodes exposées par la classe GMSMapView
. GMSMapView
vous permet d'ajouter et de supprimer des repères, des superpositions au sol et des polylignes, de modifier le type de carte affiché et de contrôler ce qui s'affiche sur la carte via la classe GMSCameraPosition
.
Créer des cartes avec SwiftUI
SwiftUI offre un moyen supplémentaire de créer une UI à l'aide d'une approche déclarative. Vous indiquez à SwiftUI l'apparence que vous souhaitez pour la vue ainsi que tous ses états, et le système se charge du reste. SwiftUI gère la mise à jour de la vue chaque fois que l'état sous-jacent change en raison d'un événement ou d'une action de l'utilisateur.
Le SDK Maps pour iOS est basé sur UIKit
et ne fournit pas encore de vue compatible avec SwiftUI. Pour ajouter des cartes dans SwiftUI, vous devez respecter UIViewRepresentable
ou UIViewControllerRepresentable
. Pour en savoir plus, consultez l'atelier de programmation Ajouter une carte à votre application iOS avec SwiftUI.
Ajouter une carte
Les principales étapes pour ajouter une carte sont les suivantes :
Pour télécharger le SDK, obtenir une clé API et ajouter les frameworks requis, suivez les étapes décrites dans :
Dans votre fichier
AppDelegate
, fournissez votre clé API à la méthode de classeprovideAPIKey:
surGMSServices
.Créez ou mettez à jour un
ViewController
. Si la carte est affichée lorsque ce contrôleur de vue devient visible, veillez à la créer dans la méthodeloadView
.Créez un objet
GMSCameraPosition
qui spécifie le centre et le niveau de zoom de la carte. Lorsque vous instanciez l'objetGMSMapView
, vous devez transmettre l'objetGMSCameraPosition
en tant que paramètre obligatoire.Créez et instanciez une classe
GMSMapView
à l'aide de la méthodeGMSMapView
mapWithFrame:
. Si cette carte doit être utilisée comme seule vue du contrôleur d'affichage, alorsCGRectZero
peut être utilisé comme cadre de la carte. La carte sera automatiquement redimensionnée.Définissez l'objet
GMSMapView
en tant que vue du contrôleur de vue, par exempleself.view = mapView;
.
Dans l'exemple ci-dessous, une carte, centrée sur le centre-ville de Singapour, est ajoutée à une application.
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
Une fois que vous avez suivi ces étapes, vous pouvez affiner la configuration de l'objet GMSMapView
.
Étapes suivantes
Une fois ces étapes terminées, vous pouvez configurer les paramètres de la carte.