Agrega un mapa

Seleccionar plataforma: Android iOS JavaScript

Los mapas se representan en la API con la clase GMSMapView, una subclase de UIView. El mapa es el objeto más importante del SDK de Maps para iOS y proporciona los métodos necesarios a fin de agregar, quitar y administrar otros objetos, como marcadores y polilíneas.

Introducción

El SDK de Maps para iOS te permite mostrar un mapa de Google en tu aplicación para iOS. Estos mapas lucen igual que aquellos que se ven en la app para iOS de Google Maps, y el SDK expone muchas de las mismas funciones.

Además de la funcionalidad de asignación, la API también admite un rango de interacciones coherentes con el modelo de IU de iOS. Por ejemplo, puedes configurar interacciones con un mapa. Para ello, debes definir respuestas que reaccionen ante gestos del usuario, como presionar y presionar dos veces.

La clase clave cuando se trabaja con un objeto de mapa es la clase GMSMapView. GMSMapView controla las siguientes operaciones automáticamente:

  • Conexión al servicio de Google Maps
  • Descarga de mosaicos de mapa
  • Visualización de mosaicos en la pantalla del dispositivo
  • Visualización de varios controles, como el desplazamiento lateral y el zoom
  • Respuesta a gestos de desplazamiento lateral y zoom a través del movimiento del mapa y su acercamiento o alejamiento
  • Responder a gestos de dos dedos a través de la inclinación del ángulo de visualización del mapa

Además de estas operaciones automáticas, puedes controlar el comportamiento y el aspecto del mapa a través de las propiedades y los métodos que expone la clase GMSMapView. GMSMapView te permite agregar y quitar marcadores, superposiciones de suelo y polilíneas, cambiar el tipo de mapa que se muestra y controlar lo que se muestra en el mapa a través de la clase GMSCameraPosition.

Compila mapas con SwiftUI

SwiftUI ofrece una forma adicional de crear IU con un enfoque declarativo. Le dices a SwiftUI cómo quieres que se vea tu vista junto con sus diferentes estados, y el sistema hará el resto. SwiftUI se encarga de actualizar la vista cada vez que cambia el estado subyacente debido a un evento o a una acción del usuario.

El SDK de Maps para iOS se compiló sobre UIKit y aún no proporciona una vista compatible con SwiftUI. Para agregar mapas en SwiftUI, se requiere cumplir con los valores UIViewRepresentable o UIViewControllerRepresentable. Para obtener más información, consulta el codelab Cómo agregar un mapa a tu app para iOS con SwiftUI.

Cómo agregar un mapa

Estos son los pasos básicos para agregar un mapa:

  1. Para acceder al SDK, obtener una clave de API y agregar los frameworks necesarios, sigue los pasos que figuran en estas secciones:

    1. Configuración en Google Cloud Console

    2. Usa claves de API

    3. Configura un proyecto de Xcode

  2. En tu AppDelegate, proporciona tu clave de API al método de clase provideAPIKey: en GMSServices.

  3. Crea o actualiza un objeto ViewController. Si el mapa se mostrará cuando este controlador de vista se vuelva visible, asegúrate de crearlo dentro del método loadView.

    1. Crea un objeto GMSCameraPosition que especifique el centro y el nivel de zoom del mapa. Cuando creas una instancia del objeto GMSMapView, debes pasar el objeto GMSCameraPosition como parámetro obligatorio.

    2. Crea una instancia de GMSMapView y crea una instancia de ella con el método mapWithFrame: de GMSMapView. Si este mapa se usará como la única vista del controlador de vista, se podría usar CGRectZero como marco del mapa. Se cambiará el tamaño del mapa automáticamente.

    3. Configura el objeto GMSMapView como la vista del controlador de vista, p.ej., self.view = mapView;.

En el ejemplo siguiente se incluye un mapa, posicionado en el centro de Singapur, a una aplicación.

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
      

Una vez que sigas estos pasos, puedes configurar el objeto GMSMapView.

Próximos pasos

Después de completar estos pasos, puedes establecer la configuración del mapa.