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 nell'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 mostra molte delle stesse funzionalità.

Oltre alla funzionalità di mappatura, l'API supporta anche una serie di interazioni coerenti con il modello di interfaccia utente iOS. Ad esempio, puoi configurare le interazioni con una mappa definendo chi risponde che reagisce 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 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 a 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 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 con la classe GMSCameraPosition.

Crea mappe con SwiftUI

SwiftUI offre un modo aggiuntivo per creare la UI utilizzando un approccio dichiarativo. Devi indicare a SwiftUI come vuoi che la vista appaia in tutti i diversi stati, e il sistema farà 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 offre ancora una visualizzazione compatibile con SwiftUI. Per aggiungere mappe in SwiftUI è necessario che siano conformi alle norme UIViewRepresentable o UIViewControllerRepresentable. Per saperne di più, consulta il codelab su come aggiungere una mappa alla tua app per iOS con SwiftUI.

Aggiungere una mappa

La procedura di base per aggiungere una mappa è la seguente:

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

    1. Configura nella console Google Cloud

    2. Utilizzare una chiave API

    3. Configurare un progetto Xcode

  2. Nel AppDelegate, fornisci la chiave API al metodo del corso provideAPIKey: in GMSServices.

  3. Crea o aggiorna ViewController. Se la mappa viene mostrata quando questo controller di visualizzazione diventa visibile, assicurati di crearla con il 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 obbligatorio.

    2. Crea e crea un'istanza di una classe GMSMapView utilizzando il metodo GMSMapView mapWithFrame:. Se questa mappa deve essere utilizzata come unica visualizzazione del controller di visualizzazione, CGRectZero potrebbe essere utilizzata 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;.

Nell'esempio che segue viene aggiunta a un'app una mappa centrata nel centro di Singapore.

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 seguito questi passaggi, puoi configurare ulteriormente l'oggetto GMSMapView.

Passaggi successivi

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