Adicionar um mapa

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

Os mapas são representados na API pela classe GMSMapView, uma subclasse de UIView. O mapa é o objeto mais significativo do SDK do Maps para iOS. Ele oferece os métodos necessários para adicionar, remover e gerenciar outros objetos, como marcadores e polilinhas.

Introdução

Com o SDK do Maps para iOS, você pode exibir um mapa do Google no seu app. Esses mapas têm a mesma aparência dos mapas que você vê no app Google Maps para iOS, e o SDK expõe muitos dos mesmos recursos.

Além da funcionalidade de mapeamento, a API também aceita um intervalo de interações consistentes com o modelo de IU do iOS. Por exemplo, você pode configurar interações com um mapa definindo respostas que reagem a gestos do usuário, como toque e dois toques.

A classe mais importante para trabalhar com um objeto de mapa é GMSMapView. GMSMapView processa as seguintes operações automaticamente:

  • Conexão com o serviço do Google Maps
  • Download de blocos de mapas
  • Exibição de blocos na tela do dispositivo
  • Exibição de vários controles, como panorâmica e zoom
  • Resposta aos gestos de movimento e de zoom, movendo o mapa e aplicando ou removendo zoom.
  • Resposta ao gesto de dois dedos, inclinando o ângulo de visualização do mapa.

Além dessas operações automáticas, você pode controlar o comportamento e a aparência do mapa pelas propriedades e métodos expostos pela classe GMSMapView. GMSMapView permite adicionar e remover marcadores, sobreposições de solo e polilinhas, mudar o tipo de mapa mostrado e controlar o que é mostrado no mapa com a classe GMSCameraPosition.

Criar mapas com o SwiftUI

O SwiftUI oferece uma outra maneira de criar IU usando uma abordagem declarativa. Você diz ao SwiftUI como quer exibir a visualização com todos os diferentes estados, e o sistema fará o resto. O SwiftUI atualiza a visualização sempre que o estado muda devido a um evento ou uma ação do usuário.

O SDK do Maps para iOS foi criado com base em UIKit e ainda não oferece uma visualização compatível com o SwiftUI. A adição de mapas no SwiftUI exige conformidade com UIViewRepresentable ou UIViewControllerRepresentable. Para saber mais, consulte o codelab Como adicionar um mapa ao seu app iOS com o SwiftUI.

Adicionar um mapa

Veja como adicionar um mapa:

  1. Para fazer o download do SDK, conseguir uma chave de API e adicionar os frameworks necessários, siga as etapas em:

    1. Configuração no console do Google Cloud

    2. Como usar chaves de API

    3. Configurar um projeto Xcode

  2. No AppDelegate, forneça sua chave de API ao método da classe provideAPIKey: no GMSServices.

  3. Crie ou atualize um ViewController. Se o mapa for exibido quando esse controlador de visualização ficar visível, crie-o no método loadView.

    1. Crie um objeto GMSCameraPosition que especifique o centro e o nível de zoom do mapa. Ao instanciar o objeto GMSMapView, é preciso transmitir o objeto GMSCameraPosition como um parâmetro obrigatório.

    2. Crie e instancie uma classe GMSMapView usando o método mapWithFrame: GMSMapView. Se ele for usado como a única visualização do controlador, o CGRectZero poderá ser usado como o frame, e o redimensionamento será feito automaticamente.

    3. Defina o objeto GMSMapView como a visualização do controlador de visualizações. Por exemplo, self.view = mapView;.

O exemplo a seguir adiciona um mapa, centralizado no centro de Cingapura, a um aplicativo.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

Depois de seguir estas etapas, será possível configurar ainda mais o objeto GMSMapView.

A seguir

Depois de concluir essas etapas, defina as configurações do mapa.