Aggiungere una mappa

Seleziona la piattaforma: Android iOS JavaScript

Le mappe sono rappresentate nell'API dalla classe GMSMapView, 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 Google nella tua applicazione per iOS. Queste mappe hanno lo stesso aspetto di quelle che vedi nell'app per iOS Google Maps 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 configurare le interazioni con una mappa definendo i responder che reagiscono alle attivazioni dall'utente, come il tocco e il doppio tocco.

La classe principale quando si lavora con un oggetto Map è la classe GMSMapView. GMSMapView gestisce automaticamente le seguenti operazioni:

  • Connessione al servizio Google Maps.
  • Download dei riquadri della mappa.
  • Visualizzazione dei riquadri sullo schermo del dispositivo.
  • Visualizzazione di vari controlli, come spostamento e zoom.
  • Rispondere ai gesti di panoramica e zoom spostando la mappa e aumentando o diminuendo lo zoom.
    • Rispondendo 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 sul terreno e polilinee, modificare il tipo di mappa visualizzato e controllare ciò che viene mostrato sulla mappa tramite la classe GMSCameraPosition.

Crea mappe con SwiftUI

SwiftUI offre un modo aggiuntivo per creare l'interfaccia utente utilizzando un approccio dichiarativo. Comunichi a SwiftUI l'aspetto che vuoi dare alla tua visualizzazione, insieme a tutti i suoi 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. L'aggiunta di mappe in SwiftUI richiede la conformità a UIViewRepresentable o UIViewControllerRepresentable. Per scoprire di più, consulta il codelab Aggiungi una mappa alla tua app per iOS con SwiftUI.

Aggiungi una mappa

I passaggi di base per aggiungere una mappa sono:

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

    1. Configura nella console Google Cloud

    2. Utilizza una chiave API

    3. Configura un progetto Xcode

    4. Nel tuo AppDelegate, fornisci la chiave API al metodo della classe provideAPIKey: su GMSServices.

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

    6. Quando inizializzi la visualizzazione della mappa, imposta le opzioni di configurazione con GMSMapViewOptions. Le proprietà includono frame, camera, mapID,backgroundColor o screen.

    7. Imposta la proprietà map options camera con un oggetto GMSCameraPosition. In questo modo, vengono specificati il centro e il livello di zoom della mappa.

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

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

L'esempio seguente aggiunge a un'app una mappa centrata sul 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;
}

Una volta seguiti questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView.

Passaggi successivi

Dopo aver completato questi passaggi, puoi configurare le impostazioni della mappa.