En la API, las clases GMSMapView y UIView representan los mapas. El mapa es el objeto más importante en el SDK de Maps para iOS y proporciona los métodos que se necesitan 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 en tu aplicación para iOS. Estos mapas lucen igual que aquellos que se ven en la app de Google Maps para iOS, y el SDK expone muchas de las mismas funciones.
Además de la funcionalidad de mapeo, la API admite una variedad de interacciones coherentes con el modelo de IU de iOS. Por ejemplo, puedes configurar interacciones con un mapa. Para ello, debes definir objetos de respuesta que reaccionen a gestos del usuario, como presionar y presionar dos veces.
Al trabajar con un objeto de mapa, la clase fundamental es 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
- 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 la apariencia del mapa a través de las propiedades y los métodos expuestos por la clase GMSMapView. Usa GMSMapView para 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.
Crea mapas con SwiftUI
SwiftUI ofrece una forma adicional de crear IU con un enfoque declarativo. Le dices a SwiftUI cuál quieres que sea la vista junto con todos sus diferentes estados, y el sistema hará el resto. SwiftUI se encarga de actualizar la vista cuando el estado subyacente cambia debido a un evento o a una acción del usuario.
El SDK de Maps para iOS se creó a partir de UIKit y no proporciona una vista compatible con SwiftUI. Para agregar mapas en SwiftUI, se requiere de UIViewRepresentable o UIViewControllerRepresentable. Para obtener más información, consulta el
Codelab para agregar un mapa a tu app para iOS con
SwiftUI.
Agrega un mapa
Los pasos básicos para agregar un mapa son los siguientes:
Para acceder al SDK, obtener una clave de API y agregar los frameworks necesarios, sigue los pasos que figuran en estas secciones:
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 hace visible, asegúrate de crearlo dentro del métodoviewDidLoad.Cuando inicialices la vista de mapa, configura las opciones de configuración con
GMSMapViewOptions. Las propiedades incluyenframe,camera,mapID,backgroundColoroscreen.Configura la propiedad opciones de mapa
cameracon unGMSCameraPositionobjeto. Esto especifica el centro y el nivel de zoom del mapa.Crea y crea una instancia de una clase
GMSMapViewcon el métodoGMSMapViewoptions:. Si este mapa se usará como la única vista del controlador de vista, el valor predeterminado de la opción de mapaframedeCGRectZerose puede usar como elframede la vista. El tamaño del mapa se cambia automáticamente.Configura el objeto
GMSMapViewcomo 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 hayas seguido estos pasos, podrás configurar aún más el objeto GMSMapView.
¿Qué sigue?
Después de completar estos pasos, puedes configurar los parámetros del mapa settings.