Sobreposições de solo

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
Selecione a plataforma: Android iOS JavaScript

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

Introdução

Uma sobreposição de solo é uma imagem fixa em um mapa. Ao contrário dos marcadores, essas sobreposições são orientadas em relação à superfície da Terra, e não na tela. Portanto, a rotação, a inclinação ou o zoom do mapa altera a orientação da imagem.

Para adicionar uma sobreposição de solo, crie um objeto GMSGroundOverlay que defina um ícone e os limites. Se você não especificar nenhum deles, a sobreposição de solo não aparecerá no mapa. Também é possível especificar outras configurações que afetam o posicionamento da imagem no mapa. Depois de definir as opções necessárias, defina a propriedade map desse objeto para adicionar a sobreposição.

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. Os limites representam os cantos sudoeste e nordeste da imagem.
  4. Defina propriedades opcionais, como bearing e zoomLevel, conforme você quiser.
  5. Defina a propriedade map. A imagem vai aparecer 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 a propriedade map do GMSGroundOverlay como nil. Como alternativa, remova todas as sobreposições, incluindo as de solo no mapa, chamando o método GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Se você quiser fazer modificações em uma sobreposição de solo após adicioná-la ao mapa, mantenha o objeto GMSGroundOverlay. É possível 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

Você pode detectar eventos que ocorrem no mapa, como quando um usuário toca em uma sobreposição. Para detectar eventos, implemente o protocolo GMSMapViewDelegate. Consulte o guia de eventos e a lista de métodos no GMSMapViewDelegate.