Las superposiciones de suelo son superposiciones en el mapa que están vinculadas a la latitud y la longitud. coordenadas, para que se muevan cuando arrastras el mapa o haces zoom.
Introducción
Una superposición de suelo es una imagen que se fija a un mapa. Desmarcar “Me gusta” marcadores, las superposiciones de suelo se orientan respecto de la superficie de la Tierra en lugar de la pantalla, por lo que rotar, inclinar o acercar el mapa cambiará la orientación de la imagen.
Para agregar una superposición de suelo, crea un objeto GMSGroundOverlay
que defina ambas
un icono y un límite. Si no especificas ambos, la superposición de suelo
no aparezcan en el mapa. Si lo deseas, puedes especificar otras configuraciones
afectará la posición de la imagen en el mapa. Una vez que hayas definido el
las opciones necesarias, establece la propiedad map
de este objeto para agregar la superposición.
Cómo agregar una superposición
- Crea una instancia de un objeto
GMSGroundOverlay
nuevo. - Configura la propiedad
icon
en una instancia deUIImage
. - Configura la propiedad
bounds
en una instancia deGMSCoordinateBounds
. El que representan los ángulos suroeste y noreste de la imagen. - Configura propiedades opcionales, como
bearing
yzoomLevel
, según lo desees. - Configura la propiedad
map
: la imagen aparece en el mapa.
En el siguiente ejemplo, se muestra cómo agregar una superposición de suelo a un objeto GMSMapView
existente:
Swift
let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg let icon = UIImage(named: "newark_nj_1922") let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView
Objective-C
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655); CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544); GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"]; GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView;
Cómo quitar una superposición
Para eliminar una superposición de suelo del mapa, configura tu
Propiedad map
de GMSGroundOverlay
para nil
De manera alternativa, puedes quitar todas
de las superposiciones (incluidas las superposiciones de suelo que se encuentren actualmente en el mapa llamando al
GMSMapView
clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Si deseas realizar modificaciones en una superposición de suelo tras agregarla a
el mapa, asegúrate de conservar el objeto GMSGroundOverlay
. Puedes
modificar la superposición de suelo posteriormente aplicando cambios a este objeto.
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
Eventos
Puedes escuchar eventos que ocurren en el mapa, como cuando un usuario presiona un
superposición. Para escuchar eventos, debes implementar el
Protocolo GMSMapViewDelegate
. Consulta la
guía de eventos y la lista de métodos del
GMSMapViewDelegate