En la API, los mapas se representan 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 para 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 Maps en tu aplicación para iOS. El aspecto de estos mapas es similar al de los mapas que ves en la app de Google Maps para iOS, y el SDK expone muchas de las mismas funciones.
Además de la funcionalidad de asignación, la API admite una variedad de interacciones que son coherentes con el modelo de IU de iOS. Por ejemplo, puedes configurar interacciones con un mapa definiendo las respuestas que reaccionen a los gestos del usuario, como presionar y presionar dos veces.
Cuando se trabaja con un objeto de mapa, la clase clave es GMSMapView
.
GMSMapView
controla automáticamente las siguientes operaciones:
- 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
- Respuesta a gestos de dos dedos a través de la inclinación del ángulo de visión del mapa
Además de estas operaciones automáticas, puedes controlar el comportamiento y el aspecto del mapa mediante 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 a través de la clase GMSCameraPosition
.
Crea mapas con SwiftUI
SwiftUI ofrece una forma adicional de crear IU con un enfoque declarativo. Le indicas a SwiftUI cómo quieres que se vea tu vista junto con todos sus estados diferentes, y el sistema se encargará del resto. SwiftUI se encarga de actualizar la vista cada vez que cambia el estado subyacente debido a un evento o una acción del usuario.
El SDK de Maps para iOS se basa en UIKit
y no proporciona una vista compatible con SwiftUI. Para agregar mapas en SwiftUI, debes cumplir con
UIViewRepresentable
o UIViewControllerRepresentable
. Si quieres 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:
Para acceder al SDK, obtener una clave de API y agregar los frameworks necesarios, sigue los pasos que se indican en los siguientes artículos:
En tu
AppDelegate
, proporciona tu clave de API al método de claseprovideAPIKey:
enGMSServices
.Crea o actualiza un
ViewController
. Si el mapa se muestra cuando este controlador de vista se vuelve visible, asegúrate de crearlo dentro del métodoviewDidLoad
.Cuando inicialices tu vista de mapa, establece las opciones de configuración con
GMSMapViewOptions
. Las propiedades incluyenframe
,camera
,mapID
,backgroundColor
oscreen
.Configura la propiedad
camera
de las opciones de mapa con un objetoGMSCameraPosition
. Esto especifica el centro y el nivel de zoom del mapa.Crea una clase
GMSMapView
y crea una instancia de ella con el métodooptions:
deGMSMapView
. Si se usa este mapa como la única vista del controlador de vista, se puede usar el valor predeterminadoCGRectZero
de la opción de mapaframe
como la vistaframe
(se cambia el tamaño del mapa automáticamente).Establece el objeto
GMSMapView
como la vista del controlador de vista. Por ejemplo,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 options = GMSMapViewOptions() options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) options.frame = self.view.bounds; let mapView = GMSMapView(options:options) self.view = mapView } }
Objective‑C
- (void)viewDidLoad { [super viewDidLoad]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView; }
Una vez que sigas estos pasos, puedes seguir configurando el objeto GMSMapView
.
¿Qué sigue?
Después de completar estos pasos, puedes establecer la configuración del mapa.