Cómo agregar un marcador a un mapa

En este ejemplo, se muestra un mapa con pines para los marcadores en Sídney y Melbourne, Australia.

Comenzar

Antes de probar el código de muestra, debes configurar tu entorno de desarrollo. Para obtener más información, consulta Muestras de código del SDK de Maps para iOS.

Consulta el código

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       

Ejecuta la app de ejemplo completa de forma local

La app de ejemplo del SDK de Maps para iOS está disponible como un archivo de descarga en GitHub. Sigue estos pasos para instalar y probar la app de ejemplo del SDK de Maps para iOS.

  1. Ejecuta git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git para clonar el repositorio de muestras en un directorio local.
  2. Abre una ventana de terminal, navega al directorio en el que clonaste los archivos de muestra y, luego, profundiza en el directorio GoogleMaps:

    Swift

    cd maps-sdk-for-ios-samples/GoogleMaps-Swift open GoogleMapsSwiftXCFrameworkDemos.xcodeproj

    Objective-C

    cd maps-sdk-for-ios-samples-main/GoogleMaps open GoogleMapsDemos.xcodeproj
  3. En el proyecto de Xcode, ve a File > Add Package Dependencies. Ingresa https://github.com/googlemaps/ios-maps-sdk como la URL, presiona Intro para extraer el paquete y haz clic en Agregar paquete.
  4. En Xcode, presiona el botón de compilación para compilar la app con el esquema actual. La compilación produce un error que te solicita que ingreses tu clave de API en el archivo SDKConstants.swift para Swift o en el archivo SDKDemoAPIKey.h para Objective-C.
  5. Obtén una clave de API de tu proyecto con el SDK de Maps para iOS habilitado.
  6. Edita el archivo SDKConstants.swift para Swift o el archivo SDKDemoAPIKey.h para Objective-C y pega tu clave de API en la definición de la constante apiKey o kAPIKey. Por ejemplo:

    Swift

    static let apiKey = "YOUR_API_KEY"

    Objective-C

    static NSString *const kAPIKey = @"YOUR_API_KEY";
  7. En el archivo SDKConstants.swift (Swift) o SDKDemoAPIKey.h (Objective-C), quita la siguiente línea, ya que se usa para registrar el problema definido por el usuario:

    Swift

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

    Objective-C

    #error Register for API Key and insert here.
  8. Compila y ejecuta el proyecto. Aparecerá la ventana del simulador de iOS, que muestra una lista de Maps SDK Demos.
  9. Elige una de las opciones que se muestran para experimentar con una función del SDK de Maps para iOS.
  10. Si se te solicita que permitas que GoogleMapsDemos acceda a tu ubicación, elige Permitir.