Aggiungere un indicatore a una mappa

Questo esempio mostra una mappa con segnaposto per Sydney e Melbourne, in Australia.

Inizia

Prima di poter provare il codice di esempio, devi configurare il tuo ambiente di sviluppo. Per ulteriori informazioni, consulta la sezione Esempi di codice di Maps SDK for iOS.

Visualizza il codice

Swift

import GoogleMaps import UIKit  // Sample code for adding a marker. class MarkersViewController: UIViewController {   private lazy var sydneyMarker = GMSMarker(     position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086))    private lazy var melbourneMarker = GMSMarker(     position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085))    private lazy var mapView: GMSMapView = {     let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4)     return GMSMapView(frame: .zero, camera: camera)   }()    override func loadView() {     view = mapView      sydneyMarker.title = "Sydney"     sydneyMarker.snippet = "Population: 4,605,992"     sydneyMarker.isFlat = false     sydneyMarker.rotation = 30     print("sydneyMarker: \(sydneyMarker)")      let australiaMarker = GMSMarker(       position: CLLocationCoordinate2D(latitude: -27.994401, longitude: 140.07019))     australiaMarker.title = "Australia"     australiaMarker.appearAnimation = .pop     australiaMarker.isFlat = true     australiaMarker.isDraggable = true     australiaMarker.groundAnchor = CGPoint(x: 0.5, y: 0.5)     australiaMarker.icon = UIImage(named: "australia")     australiaMarker.map = mapView      mapView.selectedMarker = sydneyMarker     navigationItem.rightBarButtonItem = UIBarButtonItem(       barButtonSystemItem: .add, target: self, action: #selector(tapAdd))   }    @objc func tapAdd() {     if sydneyMarker.map == nil {       sydneyMarker.map = mapView     } else {       sydneyMarker.map = nil     }     melbourneMarker.title = "Melbourne"     melbourneMarker.snippet = "Population: 4,169,103"     melbourneMarker.map = mapView   } }       

Objective-C

#import "GoogleMapsDemos/Samples/MarkersViewController.h"  #import <GoogleMaps/GoogleMaps.h>  @implementation MarkersViewController {   GMSMarker *_sydneyMarker;   GMSMarker *_melbourneMarker;   GMSMarker *_fadeInMarker; }  - (void)viewDidLoad {   [super viewDidLoad];   GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969                                                           longitude:144.966085                                                                zoom:4];   GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];    _sydneyMarker = [[GMSMarker alloc] init];   _sydneyMarker.title = @"Sydney";   _sydneyMarker.snippet = @"Population: 4,605,992";   _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);   _sydneyMarker.flat = NO;   _sydneyMarker.rotation = 30.0;   NSLog(@"sydneyMarker: %@", _sydneyMarker);    GMSMarker *australiaMarker = [[GMSMarker alloc] init];   australiaMarker.title = @"Australia";   australiaMarker.position = CLLocationCoordinate2DMake(-27.994401, 140.07019);   australiaMarker.appearAnimation = kGMSMarkerAnimationPop;   australiaMarker.flat = YES;   australiaMarker.draggable = YES;   australiaMarker.groundAnchor = CGPointMake(0.5, 0.5);   australiaMarker.icon = [UIImage imageNamed:@"australia"];   australiaMarker.map = mapView;    _fadeInMarker = [[GMSMarker alloc] init];   _fadeInMarker.title = @"Australia";   _fadeInMarker.position = CLLocationCoordinate2DMake(-29.9959, 145.0719);   _fadeInMarker.appearAnimation = kGMSMarkerAnimationFadeIn;   _fadeInMarker.icon = [UIImage imageNamed:@"australia"];    // Set the marker in Sydney to be selected   mapView.selectedMarker = _sydneyMarker;    self.view = mapView;   self.navigationItem.rightBarButtonItem =       [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd                                                     target:self                                                     action:@selector(didTapAdd)]; }  - (void)didTapAdd {   if (_sydneyMarker.map == nil) {     _sydneyMarker.map = (GMSMapView *)self.view;   } else {     _sydneyMarker.map = nil;   }    _melbourneMarker.map = nil;   _melbourneMarker = [[GMSMarker alloc] init];   _melbourneMarker.title = @"Melbourne";   _melbourneMarker.snippet = @"Population: 4,169,103";   _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085);   _melbourneMarker.map = (GMSMapView *)self.view;    if (_fadeInMarker.map) {     _fadeInMarker.map = nil;   } else {     _fadeInMarker.map = (GMSMapView *)self.view;   } }  @end       

Esegui l'app di esempio completa in locale

L'app di esempio Maps SDK for iOS è disponibile come archivio di download da GitHub. Segui questi passaggi per installare e provare l'app di esempio Maps SDK for iOS.

  1. Esegui git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git per clonare il repository di esempi in una directory locale.
  2. Apri una finestra del terminale, vai alla directory in cui hai clonato i file di esempio e visualizza la directory GoogleMaps:

    Swift

    cd maps-sdk-for-ios-samples-main/GoogleMaps-Swift pod install open GoogleMapsSwiftDemos.xcworkspace

    Objective-C

    cd maps-sdk-for-ios-samples-main/GoogleMaps pod install open GoogleMapsDemos.xcworkspace
  3. In Xcode, premi il pulsante di compilazione per compilare l'app con lo schema corrente. La compilazione genera un errore e ti chiede di inserire la chiave API nel file SDKConstants.swift per Swift o nel file SDKDemoAPIKey.h per Objective-C.
  4. Genera una chiave API dal tuo progetto con Maps SDK for iOS abilitato.
  5. Modifica il file SDKConstants.swift per Swift o il fileSDKDemoAPIKey.h per Objective-C e incolla la tua chiave API nella definizione della costante apiKey o kAPIKey. Ad esempio:

    Swift

    static let apiKey = "YOUR_API_KEY"

    Objective-C

    static NSString *const kAPIKey = @"YOUR_API_KEY";
  6. Nel file SDKConstants.swift (Swift) oSDKDemoAPIKey.h (Objective-C), rimuovi la riga seguente, perché viene utilizzata per registrare il problema definito dall'utente:

    Swift

    #error (Register for API Key and insert here. Then delete this line.)

    Objective-C

    #error Register for API Key and insert here.
  7. Compila ed esegui il progetto. Viene visualizzata la finestra del simulatore iOS, che mostra un elenco di demo di Maps SDK.
  8. Scegli una delle opzioni visualizzate per provare una funzionalità di Maps SDK for iOS.
  9. Se ti viene chiesto di consentire a GoogleMapsDemos di accedere alla tua posizione, scegli Consenti.