Sobreposições de solo

Selecione a plataforma: Android iOS JavaScript

São sobreposições no mapa vinculadas à latitude/longitude coordenadas. Assim, elas se movem quando você arrasta o mapa ou aplica zoom a ele.

Introdução

Uma sobreposição de solo é uma imagem fixa em um mapa. Não gostei marcadores, as sobreposições de solo são orientadas contra a superfície da Terra e não na tela. Então, girar, inclinar ou alterar o zoom do mapa a orientação da imagem.

Para adicionar uma sobreposição de solo, crie um objeto GMSGroundOverlay que define um ícone e limites. Se um valor não for especificado, a sobreposição de solo para não aparecer no mapa. Também é possível especificar configurações adicionais que afetará o posicionamento da imagem no mapa. Depois de definir opções necessárias, defina a propriedade map desse objeto para adicionar a sobreposição.

Como adicionar uma sobreposição

  1. Instancie um novo objeto GMSGroundOverlay.
  2. Defina a propriedade icon como uma instância de UIImage.
  3. Defina a propriedade bounds como uma instância de GMSCoordinateBounds. A limites representam os cantos sudoeste e nordeste da imagem.
  4. Defina propriedades opcionais, como bearing e zoomLevel, como quiser.
  5. Defina a propriedade map. A imagem aparece no mapa.

O exemplo abaixo demonstra como incluir uma sobreposição de solo em um objeto GMSMapView.

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;
      

Como remover uma sobreposição

Você pode remover uma sobreposição de solo do mapa definindo seu propriedade map de GMSGroundOverlay para nil. Se preferir, remova todas as das sobreposições (incluindo as sobreposições de solo atualmente no mapa chamando o método Método GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Para fazer modificações em uma sobreposição de solo após adicioná-la ao no mapa, mantenha o objeto GMSGroundOverlay. Você pode modificar a sobreposição de solo mais tarde fazendo alterações nesse 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

É possível detectar eventos ocorridos no mapa, como quando um usuário toca em um sobreposição. Para detectar eventos, você precisa implementar o GMSMapViewDelegate. Consulte a guia para eventos e a lista de métodos na GMSMapViewDelegate.