Aggiungere una mappa

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Seleziona piattaforma: Android iOS JavaScript

Le mappe sono rappresentate nell'API dalla classe GMSMapView, una sottoclasse di UIView. La mappa è l'oggetto più significativo dell'SDK di Maps per iOS e fornisce i metodi necessari per aggiungere, rimuovere e gestire altri oggetti, come indicatori e polilinee.

Introduzione

L'SDK Maps per iOS consente di visualizzare una mappa Google nell'applicazione iOS. Queste mappe hanno lo stesso aspetto delle mappe visualizzate 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 UI di iOS. Ad esempio, puoi impostare interazioni con una mappa definendo chi risponde che reagisce ai gesti degli utenti, come tocco e 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.
  • Download di 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 a due gesti con il dito inclinando l'angolo di visualizzazione della mappa.

Oltre a queste operazioni automatiche, puoi controllare il comportamento e l'aspetto della mappa attraverso le proprietà e i metodi esposti dalla classe GMSMapView. GMSMapView consente di aggiungere e rimuovere indicatori, sovrapposizioni del terreno e polilinee, modificare il tipo di mappa visualizzata e controllare ciò che viene visualizzato sulla mappa tramite la classe GMSCameraPosition.

Crea mappe con SwiftUI

SwiftUI offre un altro modo per creare un'interfaccia utente utilizzando un approccio dichiarativo. Indica a SwiftUI come vuoi che la tua vista si sovrapponga a tutti gli stati. Il sistema penserà al resto. La funzionalità SwiftUI gestisce l'aggiornamento della visualizzazione ogni volta che lo stato sottostante cambia a causa di un evento o di un'azione utente.

L'SDK Maps per iOS è basato su UIKit e non fornisce ancora una vista compatibile con SwiftUI. L'aggiunta di mappe in SwiftUI richiede la conformità a UIViewRepresentable o UIViewControllerRepresentable. Per saperne di più, consulta il codelab sull'aggiunta di una mappa all'app per iOS con SwiftUI.

Aggiungere una mappa

I passaggi di base per aggiungere una mappa sono:

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

    1. Configurazione in Google Cloud Console

    2. Utilizzare una chiave API

    3. Configura un progetto Xcode

  2. In AppDelegate, fornisci la chiave API al metodo della classe provideAPIKey: su GMSServices.

  3. Crea o aggiorna un ViewController. Se la mappa verrà visualizzata quando il controller di visualizzazione sarà visibile, assicurati di crearla nel metodo loadView.

    1. Crea un oggetto GMSCameraPosition che specifichi il centro e il livello di zoom della mappa. Quando crei un'istanza dell'oggetto GMSMapView, devi passare l'oggetto GMSCameraPosition come parametro richiesto.

    2. Crea e crea un'istanza GMSMapView con il metodo GMSMapView mapWithFrame:. Se questa mappa deve essere utilizzata come unica visualizzazione del controller, CGRectZero può essere utilizzato come frame della mappa: la mappa verrà ridimensionata automaticamente.

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

L'esempio riportato di seguito aggiunge una mappa, centrata nel centro di Singapore, a un'app.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

Dopo aver eseguito questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView.

Passaggi successivi

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