Adicionar um mapa

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 importante do SDK do Maps para iOS e 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 aplicativo iOS. Esses mapas têm a mesma aparência que os 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 é compatível com várias interações consistentes com o modelo de IU do iOS. Por exemplo, você pode configurar interações com um mapa definindo respondentes que reagem a gestos do usuário, como toque e dois toques.

A classe mais importante ao trabalhar com um objeto Map é a 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 movimento 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 usando as propriedades e os métodos expostos pela classe GMSMapView. Com o GMSMapView, você pode adicionar e remover marcadores, sobreposições de solo e polilinhas, mudar o tipo de mapa exibido e controlar o que aparece no mapa com a classe GMSCameraPosition.

Criar mapas com o SwiftUI

O SwiftUI oferece outra maneira de criar a IU usando uma abordagem declarativa. Você informa ao SwiftUI como quer que sua visualização seja exibida com todos os estados diferentes, e o sistema cuida do restante. 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 no UIKit e ainda não oferece uma visualização compatível com o SwiftUI. Para adicionar mapas no SwiftUI, é necessário estar em conformidade com UIViewRepresentable ou UIViewControllerRepresentable. Para saber mais, consulte o codelab Como adicionar um mapa ao seu app iOS com o SwiftUI.

Como 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 do Xcode

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

  3. Crie ou atualize um ViewController. Se o mapa for exibido quando esse controlador de visualização se tornar 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, é necessário transmitir o objeto GMSCameraPosition como um parâmetro obrigatório.

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

    3. Defina o objeto GMSMapView como a visualização do controlador de visualização, 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 essas etapas, você vai poder fazer outras configurações no objeto GMSMapView.

A seguir

Depois de concluir essas etapas, você poderá definir as configurações do mapa.