Le mappe sono rappresentate nell'API dalla classe GMSMapView
, una
sottoclasse di UIView
. La mappa è l'oggetto più significativo nell'SDK Maps per iOS e fornisce i metodi necessari per aggiungere, rimuovere e gestire altri oggetti come indicatori e polilinee.
Introduzione
Maps SDK for iOS ti consente di visualizzare una mappa di Google nella tua applicazione iOS. Queste mappe hanno lo stesso aspetto di quelle che vedi nell'app Google Maps iOS e l'SDK mette in evidenza molte delle stesse funzionalità.
Oltre alla funzionalità di mappatura, l'API supporta anche una serie di interazioni coerenti con il modello di UI iOS. Ad esempio, puoi configurare le interazioni con una mappa definendo gli utenti che rispondono ai gesti dell'utente, come il tocco e il doppio tocco.
Quando si lavora con un oggetto Map, la classe di chiave è 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, come panoramica e zoom.
- Rispondere ai gesti di panoramica e zoom spostando la mappa e aumentando o diminuendo lo zoom.
- Possibilità di rispondere 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, sovrapposizioni al suolo e polilinee, modificare il tipo di mappa visualizzata e controllare ciò che viene mostrato sulla mappa mediante la classe GMSCameraPosition
.
Crea mappe con SwiftUI
SwiftUI offre un ulteriore modo per creare l'UI utilizzando un approccio dichiarativo. Devi comunicare a SwiftUI come vuoi che sia la visualizzazione insieme ai vari 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.
L'SDK di Maps per iOS è basato su UIKit
e non fornisce una visualizzazione compatibile con SwiftUI. L'aggiunta di mappe in SwiftUI richiede la conformità a UIViewRepresentable
o UIViewControllerRepresentable
. Per saperne di più, consulta il codelab relativo all'aggiunta di una mappa all'app per iOS con SwiftUI.
Aggiunta di una mappa
I passaggi di base per aggiungere una mappa sono:
Per ottenere l'SDK, ottenere una chiave API e aggiungere i framework richiesti, segui questi passaggi:
In
AppDelegate
, fornisci la chiave API al metodo della classeprovideAPIKey:
suGMSServices
.Crea o aggiorna un
ViewController
. Se la mappa viene mostrata quando questo controller di visualizzazione diventa visibile, assicurati di crearla utilizzando il 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 della mappa con un oggettoGMSCameraPosition
. 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 unica visualizzazione del controller, il valore predefinitoCGRectZero
dell'opzione mappaframe
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 seguente 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.