Aggiungere una mappa

Seleziona la piattaforma: Android iOS JavaScript

Le mappe sono rappresentate nell'API dalla classe GMSMapView, una sottoclasse UIView. La mappa è l'oggetto più significativo di Maps SDK for 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 per iOS e l'SDK mostra 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.

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, come panoramica e zoom.
  • Rispondere ai gesti di panoramica e zoom spostando la mappa e aumentando o diminuendo lo zoom.
    • Rispondere ai gesti con due dita inclinando l'angolo di visione 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 del 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 modo aggiuntivo per creare una UI utilizzando un approccio dichiarativo. Dovrai indicare a SwiftUI come deve apparire la visualizzazione con tutti i 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.

Maps SDK for 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 scoprire di più, consulta il codelab sull'aggiunta di una mappa all'app per iOS con SwiftUI.

Aggiunta di una mappa

I passaggi di base per l'aggiunta di una mappa sono:

  1. Per ottenere l'SDK, ottenere una chiave API e aggiungere i framework richiesti, segui questi passaggi:

    1. Configura nella console Google Cloud

    2. Utilizzare una chiave API

    3. Configura un progetto Xcode

    4. In AppDelegate, fornisci la tua chiave API per il metodo della classe provideAPIKey: su GMSServices.

    5. Crea o aggiorna un ViewController. Se la mappa viene mostrata quando questo controller di visualizzazione diventa visibile, assicurati di crearlo all'interno del metodo viewDidLoad.

    6. Durante l'inizializzazione della visualizzazione mappa, imposta le opzioni di configurazione con GMSMapViewOptions. Le proprietà includono frame, camera, mapID,backgroundColor o screen.

    7. Imposta la proprietà camera delle opzioni della mappa con un oggetto GMSCameraPosition. Consente di specificare il centro e il livello di zoom della mappa.

    8. Crea e crea un'istanza di una classe GMSMapView utilizzando il metodo GMSMapView options:. Se questa mappa deve essere utilizzata come unica visualizzazione del controller di visualizzazione, il valore predefinito CGRectZero dell'opzione della mappa frame può essere utilizzato come vista frame; la mappa viene ridimensionata automaticamente.

    9. Imposta l'oggetto GMSMapView come vista del controller di visualizzazione. Ad esempio, self.view = mapView;.

Nell'esempio riportato di seguito, a un'app viene aggiunta 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.