Le mappe sono rappresentate nell'API dalla classe GMSMapView
, una
sottoclasse di UIView
. La mappa è l'oggetto più significativo in Maps SDK per iOS e fornisce i metodi necessari per aggiungere, rimuovere e gestire altri oggetti come indicatori e polilinee.
Introduzione
Maps SDK per iOS ti consente di visualizzare una mappa Google nella tua applicazione iOS. Queste mappe hanno lo stesso aspetto delle mappe che vedi nell'app Google Maps per iOS e l'SDK espone molte delle stesse funzionalità.
Oltre alla funzionalità di mappatura, l'API supporta anche una serie di interazioni coerenti con il modello di UI di iOS. Ad esempio, puoi impostare le interazioni con una mappa definendo gli utenti che possono rispondere ai gesti dell'utente, come il tocco e il 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 in corso.
- Download dei riquadri della mappa in corso...
- Visualizzazione dei riquadri sullo schermo del dispositivo.
- Visualizzazione di vari controlli, ad esempio panoramica e zoom.
- Risposta ai gesti di panoramica e zoom spostando la mappa e aumentando o diminuendo lo zoom.
- Risposta 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 al suolo e polilinee, modificare il tipo di mappa da visualizzare e controllare ciò che viene mostrato sulla mappa attraverso la classe GMSCameraPosition
.
Crea mappe con SwiftUI
SwiftUI offre un ulteriore modo per creare UI utilizzando un approccio dichiarativo. Devi indicare a SwiftUI come vuoi che venga visualizzata la vista insieme a tutti i diversi stati e il sistema fa il resto. SwiftUI gestisce l'aggiornamento della vista ogni volta che lo stato sottostante cambia a causa di un evento o di un'azione dell'utente.
Maps SDK per iOS è basato su UIKit
e non fornisce una visualizzazione compatibile con SwiftUI. Per aggiungere mappe in SwiftUI, devi rispettare le seguenti norme: UIViewRepresentable
o UIViewControllerRepresentable
. Per scoprire di più, consulta il
Codelab sull'aggiunta di una mappa a un'app per iOS con
SwiftUI.
Aggiunta di una mappa
I passaggi di base per l'aggiunta di una mappa sono:
Per ottenere l'SDK, ottenere una chiave API e aggiungere i framework richiesti, segui la procedura in:
Nel tuo
AppDelegate
, fornisci la chiave API per il metodo della classeprovideAPIKey:
suGMSServices
.Crea o aggiorna un
ViewController
. Se la mappa viene mostrata quando questo controller della vista diventa visibile, assicurati di crearla nel metodoviewDidLoad
.Durante l'inizializzazione della visualizzazione mappa, imposta le opzioni di configurazione con
GMSMapViewOptions
. Le proprietà includonoframe
,camera
,mapID
,backgroundColor
oscreen
.Imposta la proprietà
camera
delle opzioni di mappa con un oggettoGMSCameraPosition
. che consente di specificare il livello di zoom e il centro della mappa.Crea e crea un'istanza per un corso
GMSMapView
usando il metodoGMSMapView
options:
. Se questa mappa deve essere utilizzata come unica vista del controller di visualizzazione, il valore predefinitoframe
dell'opzione mappaCGRectZero
può essere utilizzato come vistaframe
— la mappa viene ridimensionata automaticamente.Imposta l'oggetto
GMSMapView
come vista del controller di visualizzazione. Ad esempio,self.view = mapView;
.
L'esempio riportato di seguito aggiunge a un'app una mappa, centrata nel centro di Singapore.
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; }
Dopo aver seguito questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView
.
Passaggi successivi
Dopo aver completato questi passaggi, puoi configurare le impostazioni della mappa.