
Cette page explique comment ajouter une carte 3D de base à une application iOS à l'aide du SDK Maps 3D pour iOS. Les instructions figurant sur cette page supposent que vous avez déjà suivi les étapes de la page Configuration et que vous disposez des éléments suivants :
- Un projet Google Cloud avec le SDK Maps 3D pour iOS activé
- Une clé API pour le SDK Maps 3D pour iOS
- Xcode version 16.0 ou ultérieure avec le package du SDK Maps 3D pour iOS ajouté.
Pour en savoir plus sur ces prérequis, consultez Configuration.
Suivez un atelier de programmation plus avancé codelab.
Consultez d'autres exemples de code sur GitHub.
Partie 1 : Créer une application SwiftUI de base
- Créez une application dans Xcode.
- Définissez le nom du produit sur
Hello3DWorld, avec l'identifiant de l'organisation défini surcom.example. Le nom du package doit êtrecom.example.Hello3DWorld. - Choisissez l'interface SwiftUI.
- Ajoutez la bibliothèque Maps 3D à votre application. Pour obtenir des instructions, consultez la section Configuration.
Partie 2 : Ajouter une carte
Ouvrez le fichier
ContentView.swift. Il s'agit du point d'entrée et de la navigation principale de votre application.Importez
SwiftUIet le packageGoogleMaps3D.Remplacez l'intégralité du code dans la déclaration du corps par Map(mode: .hybrid).
La configuration initiale minimale que vous devez fournir pour initialiser un
Mapest leMapMode:.hybrid,.roadmapou.satellite
Votre fichier
ContentView.swiftdevrait se présenter comme suit :import SwiftUI import GoogleMaps3D struct ContentView: View { var body: some View { Map(mode: .hybrid) } } #Preview { ContentView() }
Partie 3 : Définir votre clé API
La clé API doit être définie avant l'initialisation de la carte. Pour ce faire, définissez
Map.apiKeydans le gestionnaire d'événementsinit()de laViewcontenant la carte.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(mode: .hybrid) } }
Partie 4 : Utiliser une caméra pour contrôler la vue de la carte
Les vues de carte 3D sont contrôlées par la classe Camera. Dans cette étape, vous apprendrez à spécifier l'emplacement, l'altitude, le cap, l'inclinaison, le roulis et la plage pour personnaliser la vue de la carte.
Modifiez l'appel de fonction
Map()pour inclure une propriétéinitialCamera. InitialisezinitialCamerapour afficher une vue du centre-ville de Manhattan.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(initialCamera: .init( center: .init(latitude: 40.748339, longitude: -73.985912, altitude: 211.1), heading: 52, tilt: 68, roll: 0.0, range: 1039, fieldOfView: .degrees(50) ), mode: .hybrid) } }
Le code ci-dessus définit des valeurs pour ces paramètres :
center:LatLngAltitudereprésentant l'emplacement de la caméraheading: cap en degrés du nord vers lequel la caméra est orientée.tilt: angle d'inclinaison en degrés, où 0 correspond à la verticale et 90 à l'horizontale.roll: angle de roulis autour du plan vertical de la caméra, en degrés.range: distance en mètres entre la caméra et l'emplacement de latitude et de longitudefieldOfView: angle représentant le champ de vision de la caméra
Si vous ne fournissez aucun de ces paramètres supplémentaires, une valeur par défaut sera utilisée.
Pour que la vue de la caméra affiche davantage de données 3D, définissez les paramètres initiaux de manière à afficher une vue inclinée plus rapprochée.
Partie 5 : Prévisualiser et exécuter votre application
Ajouter un aperçu Xcode
Les aperçus sont une fonctionnalité puissante d'Xcode qui vous permet de voir votre application et d'interagir avec elle sans avoir à utiliser le simulateur ni un appareil externe.
Pour ajouter un aperçu, ajoutez un bloc de code
#Preview {}en dehors de votre structure.#Preview { ContentView() }Exécuter l'application
Créez et exécutez l'application.
États de chargement et d'erreur de la carte
Le SDK Maps 3D pour iOS affiche automatiquement un retour visuel intégré tout en
gérant l'état de la Map :
- Superposition de chargement : un indicateur de progression centré s'affiche lorsque la vue de la carte est initialisée ou chargée pour la première fois.
- Superposition d'erreur : une superposition d'erreur s'affiche si la carte ne parvient pas à se charger.
Si vous appliquez un style de carte basé dans le cloud à l'aide de
style(mapID:error:)
sur Map, vous
pouvez transmettre une fermeture error pour gérer les erreurs de chargement de style.
Écouter les événements de pression sur la carte
Pour écouter les événements de pression sur la carte, appliquez le
onTap(_:)
modificateur à Map.
Lorsqu'un utilisateur appuie sur la carte, la fermeture reçoit une
MapTapInfo
valeur qui fournit l'
location
(LatLngAltitude)
et le
content
sur lequel l'utilisateur a appuyé (MapTapInfo.Content.map
ou
MapTapInfo.Content.place(id:)).
Pour en savoir plus sur les interactions avec les points d'intérêt, consultez
Interagir avec les points d'intérêt.
Map(mode: .hybrid)
.onTap { tapInfo in
print("Tapped at \(tapInfo.location), content: \(tapInfo.content)")
}
Félicitations !
Vous avez ajouté une carte 3D à une application.
Vous pouvez ensuite explorer des fonctionnalités plus avancées du SDK Maps 3D pour iOS, telles que les animations de chemin de caméra, les repères 3D ou les polygones.