Le mappe sono rappresentate dall'API mediante la GMSMapView classe, 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 consente di visualizzare una mappa di Google nella tua applicazione iOS. Queste mappe hanno lo stesso aspetto di quelle che vedi in Google Maps per iOS e l'SDK espone molte delle stesse funzionalità.
Oltre alle funzionalità di mappatura, l'API supporta anche una serie di interazioni coerenti con il modello UI di iOS. Ad esempio, puoi configurare le interazioni con una mappa definendo i responder che reagiscono ai gesti dell'utente, come il tocco e il doppio tocco.
La classe chiave quando si lavora con un oggetto mappa è la classe GMSMapView.
GMSMapView gestisce automaticamente le seguenti operazioni:
- Connessione al servizio Google Maps.
- Download delle schede mappa.
- Visualizzazione delle schede sullo schermo del dispositivo.
- Visualizzazione di vari controlli, come lo spostamento e lo zoom.
- Risposta ai gesti di spostamento e zoom spostando la mappa e ingrandendola o rimpicciolendola.
- 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. Utilizza GMSMapView per aggiungere e rimuovere indicatori, overlay di base e polilinee, modificare il tipo di mappa visualizzata e controllare ciò che viene mostrato sulla mappa tramite la classe GMSCameraPosition.
Creare mappe con SwiftUI
SwiftUI offre un modo aggiuntivo per creare UI utilizzando un approccio dichiarativo. Indichi a SwiftUI l'aspetto che vuoi che abbia la tua visualizzazione, insieme a 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 visualizzazione compatibile con SwiftUI. Per aggiungere mappe in SwiftUI è necessario rispettare UIViewRepresentable o UIViewControllerRepresentable. Per saperne di più, consulta il
codelab Aggiungere una mappa alla tua app per iOS con
SwiftUI.
Aggiungere una mappa
I passaggi di base per aggiungere una mappa sono:
Per ottenere l'SDK, recuperare una chiave API e aggiungere i framework richiesti, segui i passaggi descritti in:
In
AppDelegate, fornisci la chiave API al metodo di classeprovideAPIKey:suGMSServices.Crea o aggiorna un
ViewController. Se la mappa viene visualizzata quando questo controller di visualizzazione diventa visibile, assicurati di crearla all'interno del metodoviewDidLoad.Quando inizializzi la visualizzazione della mappa, imposta le opzioni di configurazione con
GMSMapViewOptions. Le proprietà includonoframe,camera,mapID,backgroundColoroscreen.Imposta la proprietà opzioni della mappa
cameracon unGMSCameraPositionoggetto. Specifica il centro e il livello di zoom della mappa.Crea e crea un'istanza di una classe
GMSMapViewutilizzando il metodoGMSMapViewoptions:. Se questa mappa deve essere utilizzata come unica visualizzazione del controller di visualizzazione, il valore predefinitoCGRectZerodell'opzione della mappaframepuò essere utilizzato comeframedella visualizzazione: le dimensioni della mappa vengono modificate automaticamente.Imposta l'oggetto
GMSMapViewcome visualizzazione del controller di visualizzazione. 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 completati questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView.
Passaggi successivi
Dopo aver completato questi passaggi, puoi configurare le impostazioni della mappa.