Le mappe sono rappresentate nell'API dalla classe GMSMapView
, che è una
sottoclasse di UIView
. La mappa è l'oggetto più significativo in Maps SDK for iOS e fornisce i metodi necessari per aggiungere, rimuovere e gestire altri oggetti come i marcatori e le polilinee.
Introduzione
Maps SDK for iOS ti consente di visualizzare una mappa di Google nella tua applicazione per iOS. Queste mappe hanno lo stesso aspetto di quelle che vedi nell'app Google Maps per iOS e l'SDK mette a disposizione molte delle stesse funzionalità.
Oltre alla funzionalità di mappatura, l'API supporta anche una serie di interazioni coerenti con il modello di interfaccia utente di iOS. Ad esempio, puoi impostare le interazioni con una mappa definendo i gestori che reagiscono ai gesti dell'utente, come tocco e doppio tocco.
La classe chiave quando si lavora con un oggetto Map è la classe GMSMapView
.
GMSMapView
gestisce automaticamente le seguenti operazioni:
- Connessione al servizio Google Maps.
- Download delle schede della mappa.
- Visualizzazione dei riquadri sullo schermo del dispositivo.
- Visualizzazione di vari controlli, come panoramica e zoom.
- Rispondere ai gesti di panoramica e zoom spostando la mappa e aumentando o diminuendo lo zoom.
- Rispondi ai gesti con due dita inclinando l'angolo di visualizzazione della mappa.
Oltre a queste operazioni automatiche, puoi controllare il comportamento e l'aspetto della mappa tramite le proprietà e i metodi esposti dalla classe GMSMapView
. GMSMapView
ti consente di aggiungere e rimuovere indicatori, overlay del terreno e polilinee, modificare il tipo di mappa visualizzato e controllare cosa viene mostrato sulla mappa tramite la classe GMSCameraPosition
.
Creare mappe con SwiftUI
SwiftUI offre un modo aggiuntivo per creare l'interfaccia utente utilizzando un approccio dichiarativo. Devi solo dire a SwiftUI come vuoi che sia la tua vista e tutti i diversi stati, e il sistema fa il resto. SwiftUI gestisce l'aggiornamento della visualizzazione ogni volta che lo stato sottostante cambia a causa di un evento o di un'azione dell'utente.
Maps SDK for iOS è basato su UIKit
e non fornisce una vista compatibile con SwiftUI. L'aggiunta di mappe in SwiftUI richiede la conformità a UIViewRepresentable
o UIViewControllerRepresentable
. Per saperne di più, consulta il
Codelab Aggiunta di una mappa all'app per iOS con
SwiftUI.
Aggiunta di una mappa
I passaggi di base per aggiungere una mappa sono:
Per scaricare l'SDK, ottenere una chiave API e aggiungere i framework richiesti, segui la procedura descritta in:
In
AppDelegate
, fornisci la tua chiave API al metodo della classeprovideAPIKey:
suGMSServices
.Crea o aggiorna un
ViewController
. Se la mappa viene visualizzata quando questo view controller diventa visibile, assicurati di crearla all'interno del metodoviewDidLoad
.Quando inizializzazione la visualizzazione della mappa, imposta le opzioni di configurazione con
GMSMapViewOptions
. Le proprietà includonoframe
,camera
,mapID
,backgroundColor
oscreen
.Imposta la proprietà
camera
Opzioni mappa con un oggettoGMSCameraPosition
. Questo specifica il centro e il livello di zoom della mappa.Crea e crea un'istanza di una classe
GMSMapView
utilizzando il metodoGMSMapView
options:
. Se questa mappa deve essere utilizzata come única vista del visualizzatore, il valore predefinito dell'opzione mappaframe
diCGRectZero
può essere utilizzato come vistaframe
. La mappa viene ridimensionata automaticamente.Imposta l'oggetto
GMSMapView
come vista del view controller. Ad esempio,self.view = mapView;
.
L'esempio riportato di seguito aggiunge una mappa, centrata sul centro di Singapore, a un'app.
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; }
Una volta eseguiti questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView
.
Passaggi successivi
Dopo aver completato questi passaggi, puoi configurare le impostazioni della mappa.