Aggiungi una mappa con un indicatore
Questo tutorial mostra come aggiungere su iOS una mappa Google semplice con un indicatore dell'app. È adatto a persone con una conoscenza di base o intermedia di Swift Objective-C e conoscenza generale di Xcode. Per una guida avanzata sulla creazione di mappe, consultate le informazioni guida.
Utilizzando questo tutorial, creerai la mappa seguente. L'indicatore è posizionato in Sydney, Australia.
Ottieni il codice
Clona o scarica il Repository di esempio per iOS di Google Maps su GitHub.
In alternativa, fai clic sul seguente pulsante per scaricare il codice sorgente:
Swift
import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
#import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
Inizia
Gestore pacchetti Swift
Maps SDK per iOS può essere installato utilizzando Swift Package Manager.
- Assicurati di aver rimosso eventuali dipendenze di Maps SDK for iOS esistenti.
- Apri una finestra del terminale e vai alla directory
tutorials/map-with-marker
. -
Assicurati che l'area di lavoro Xcode sia chiusa ed esegui questi comandi:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- Apri il progetto Xcode ed elimina il podfile.
- Vai su File > Aggiungi dipendenze pacchetto.
- Inserisci https://github.com/googlemaps/ios-maps-sdk come URL, premi Invio per estrarre il pacchetto e fai clic su Aggiungi pacchetto.
- Potresti dover reimpostare la cache del pacchetto utilizzando File > Pacchetti > Reimposta la cache del pacchetto.
Utilizza CocoaPods
- Scarica e installa Xcode versione 15.0 o successive.
- Se non hai ancora CocoaPods,
installalo su macOS eseguendo questo comando dal terminale:
sudo gem install cocoapods
- Vai alla directory
tutorials/map-with-marker
. - Esegui il comando
pod install
. Questa operazione installerà l'SDK Maps specificato inPodfile
, insieme alle eventuali dipendenze. - Esegui
pod outdated
per confrontare la versione del pod installata con gli eventuali nuovi aggiornamenti. Se viene rilevata una nuova versione, eseguipod update
per aggiornarePodfile
e installare l'SDK più recente. Per ulteriori dettagli, consulta la guida di CocoaPods. - Apri (fai doppio clic) la sezione map-with-marker.xcworkspace del progetto
per aprirlo in Xcode. Per aprire il progetto, devi usare il file
.xcworkspace
.
Ottenere una chiave API e abilitare le API necessarie
Per completare questo tutorial, ti serve una chiave API di Google che sia autorizzata a utilizza Maps SDK for iOS. Fai clic sul pulsante seguente per visualizzare una chiave e attivare l'API.
IniziaPer ulteriori dettagli, vedi Ottieni una chiave API.
Aggiungi la chiave API all'applicazione
Aggiungi la chiave API a AppDelegate.swift
nel seguente modo:
- Tieni presente che al file è stata aggiunta la seguente istruzione di importazione:
import GoogleMaps
- Modifica la riga seguente in
application(_:didFinishLaunchingWithOptions:)
sostituendo YOUR_API_KEY con la tua chiave API:GMSServices.provideAPIKey("YOUR_API_KEY")
Crea ed esegui la tua app
- Collega un dispositivo iOS al computer o seleziona un simulatore dal menu dello schema Xcode.
- Se stai utilizzando un dispositivo, assicurati che i servizi di localizzazione siano attivi. Se utilizzi un simulatore, seleziona una località dalla sezione Funzionalità o dal menu Fogli Google.
- In Xcode, fai clic sull'opzione di menu Prodotto/Esegui (o riproduci l'icona del pulsante di attivazione/disattivazione).
- Xcode crea l'app, quindi la esegue sul dispositivo o sul simulatore.
- Dovresti visualizzare una mappa con un indicatore centrato su Sydney, sulla costa orientale dell'Australia, simile all'immagine in questa pagina.
Risoluzione dei problemi:
- Se non vedi una mappa, verifica di aver ottenuto una chiave API e di aver aggiunto all'app, come descritto in precedenza. Controllo Console di debug di Xcode per i messaggi di errore relativi alla chiave API.
- Se hai limitato la chiave API tramite l'identificatore bundle iOS, modifica il
chiave per aggiungere l'identificatore pacchetto per l'app:
com.google.examples.map-with-marker
. - Assicurati di avere una buona connessione Wi-Fi o GPS.
- Utilizzare gli strumenti di debug Xcode per visualizzare i log ed eseguire il debug dell'app.
comprendi il codice
- Crea una mappa e impostala come vista in
viewDidLoad()
.Swift
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) view = mapView
Objective-C
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6.0]; GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera]; self.view = mapView;
- Aggiungi un indicatore alla mappa in
viewDidLoad()
.Swift
// Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView
Objective-C
// Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView;
Per impostazione predefinita, Maps SDK for iOS mostra il contenuto delle informazioni quando l'utente tocca un indicatore. Non è necessario aggiungere un listener di clic per l'indicatore se vuoi usare il comportamento predefinito.
Complimenti! Hai creato un'app per iOS che mostra una mappa Google con un per indicare una località specifica. Hai anche imparato a utilizzare lo SDK Maps per iOS.
Passaggi successivi
Scopri di più sull'oggetto mappa e su ciò che vuoi che può fare con gli indicatori.