Com a câmera, é possível mudar o ponto de vista do usuário no mapa. Você pode usar os modos de câmera para controlar o comportamento do mapa durante a navegação. Para definir o modo da câmera, defina a propriedade cameraMode da
visualização do mapa, especificando uma das seguintes constantes de modo da câmera:
- Seguindo: o modo de câmera padrão para navegação. Muda o ângulo de visão para 45 graus e coloca a câmera atrás da posição atual, voltada para a direção do trajeto. Durante a navegação, a câmera se ajusta automaticamente para ficar de frente na direção do trajeto. Pressionar o botão Recentralizar do mapa também muda para esse modo. O botão Recentralizar não fica visível quando esse modo está selecionado. 
- Visão geral: mostra uma visão geral de todo o trajeto, aumentando o zoom conforme necessário para ajustar o trajeto à visualização do mapa. Quando essa visualização é selecionada, o botão Recentralizar fica visível. 
- Livre: permite que o usuário mude a visualização do mapa com gestos. A câmera permanece parada nessa visualização. O mapa entra automaticamente nessa visualização se o usuário mover ou aplicar zoom durante a navegação. Quando essa visualização é selecionada, o botão Recentralizar fica visível. 
Para mudar o modo da câmera, defina a propriedade cameraMode da visualização de mapa, conforme mostrado aqui:
Swift
// Set the mode to "overview":
mapView.cameraMode = .overview
// Set the mode to "free":
mapView.cameraMode = .free
// Set the mode to "following":
mapView.cameraMode = .following
Objective-C
// Set the mode to "overview":
mapView.cameraMode = GMSNavigationCameraModeOverview;
// Set the mode to "free":
mapView.cameraMode = GMSNavigationCameraModeFree;
// Set the mode to "following":
mapView.cameraMode = GMSNavigationCameraModeFollowing;
Recentralizar o mapa automaticamente
Quando os usuários movem o mapa no modo de navegação, o modo de câmera da visualização do mapa muda de modo de acompanhamento para modo livre. A câmera volta ao modo de acompanhamento quando o usuário pressiona Recentralizar. Você pode automatizar o retorno ao modo de acompanhamento usando um timer para definir um intervalo entre sair do modo de acompanhamento e voltar a ele automaticamente.
Exemplo
O exemplo de código a seguir verifica se o mapa está sendo movido pelo usuário no modo de navegação. Se for, ele define um timer para mudar o modo de câmera para o modo de acompanhamento, centralizando o mapa após cinco segundos.
Swift
class YourViewController: UIViewController {
  @IBOutlet weak var mapView: GMSMapView!
  var autoFollowTimer: Timer!
  override func viewDidLoad() {
    super.viewDidLoad()
    mapView.delegate = self
    ...
  }
  ...
}
/** Implements the GMSMapViewDelegate protocol. */
extension YourViewController: GMSMapViewDelegate {
  func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
    if mapView.navigator?.isGuidanceActive == false {return}
    if !gesture {return}
    autoFollowTimer?.invalidate()
    autoFollowTimer = Timer(
      timeInterval: TimeInterval(5.0),
      target: self,
      selector: #selector(recenterMap),
      userInfo: nil,
      repeats: false)
    RunLoop.current.add(autoFollowTimer, forMode: .default)
  }
  /** Centers the map in guidance mode. */
  @objc private func recenterMap() {
    if mapView.navigator?.isGuidanceActive == true {
       mapView.cameraMode = .following
    }
    autoFollowTimer.invalidate()
    autoFollowTimer = nil
  }
}
Objective-C
@interface YourViewController : UIViewController<GMSMapViewDelegate>
...
@end
@implementation YourViewController {
  GMSMapView *_mapView;
  NSTimer *_autoFollowTimer;
  ...
}
...
- (void)viewDidLoad {
  [super viewDidLoad];
  ...
  _mapView.delegate = self;
  ...
}
...
/** Implements the GMSMapViewDelegate protocol. */
- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture {
  if (!_mapView.navigator.guidanceActive) return;
  if (!gesture) return;
  [_autoFollowTimer invalidate];
  _autoFollowTimer = [NSTimer scheduledTimerWithTimeInterval:5.0
                                                      target:self
                                                    selector:@selector(recenterMap)
                                                    userInfo:nil
                                                     repeats:NO];
}
/** Centers the map in guidance mode. */
- (void)recenterMap {
  if (_mapView.navigator.guidanceActive) {
    _mapView.cameraMode = GMSNavigationCameraModeFollowing;
  }
  [_autoFollowTimer invalidate];
  _autoFollowTimer = nil;
}
@end