Superposiciones de suelo

Selecciona la plataforma: Android iOS JavaScript

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

  1. Crea una instancia de un objeto GMSGroundOverlay nuevo.
  2. Configura la propiedad icon en una instancia de UIImage.
  3. Configura la propiedad bounds en una instancia de GMSCoordinateBounds. El que representan los ángulos suroeste y noreste de la imagen.
  4. Configura propiedades opcionales, como bearing y zoomLevel, según lo desees.
  5. 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