Pronto!

Para começar a desenvolver, acesse nossa documentação do desenvolvedor.

Ative o Google Maps SDK for iOS

Para começar, orientaremos você pelo Google Developers Console para realizar algumas atividades:

  1. Criar ou selecionar um projeto
  2. Ative o Google Maps SDK for iOS
  3. Criar chaves apropriadas
Continuar

Street View

O Google Maps Street View permite explorar locais em todo o mundo usando imagens de ruas de 360 graus. É possível explorar pontos turísticos, visualizar maravilhas naturais, navegar em uma viagem ou mostrar o lado externo da sua empresa.

Visão geral

O Google Street View fornece exibições panorâmicas de 360 graus para vias designadas em toda a área de cobertura. A cobertura disponibilizada pelo SDK é a mesma do aplicativo do Google Maps para iOS ou https://maps.google.com/. Saiba mais sobre o Street View e veja as áreas cobertas em um mapa interativo em Sobre o Street View.

O Google Maps SDK for iOS fornece um serviço do Street View para obter e manipular as imagens usadas no Google Maps Street View. As imagens do Street View são retornadas como panoramas e visualizadas no visualizador do Street View — um objeto do tipo GMSPanoramaView.

Panoramas do Street View

Cada panorama do Street View é uma imagem ou um conjunto de imagens que oferece uma visualização de 360 graus completa de uma única localização. As imagens estão em conformidade com a projeção equirretangular (Plate Carrée), que contém 360 graus de visualização horizontal (uma volta completa) e 180 graus de visualização vertical (de cima para baixo). O panorama de 360 graus resultante define a projeção em uma esfera com a imagem cobrindo a superfície bidimensional dessa esfera.

Os panoramas do Street View são exibidos com o objeto GMSPanoramaView. Esse objeto fornece um visualizador que renderiza o panorama como uma esfera com uma câmera no centro. É possível controlar programaticamente a orientação da câmera, bem como de várias propriedades que personalizam o visualizador.

Acesso aos dados do Street View

Os panoramas do Street View são identificados por um destes fragmentos de metadados:

panoramaID
O ID único de um panorama do Street View. Esse panoramaID pode ser alterado com o tempo e não é adequado para referências de longo prazo ou estabelecidas em código. O panoramaID é mais útil para oferecer acesso programático a imagens diferentes do Street View. Observação: panoramas Innerspace e Photo Sphere não são permitidos neste momento.
coordinate
A localização precisa dessa imagem, expressa como CLLocationCoordinate2D. Use uma coordinate para armazenamento persistente de uma localização de panorama ou para converter ações do usuário no mapa em uma imagem do Street View.

panoramaID e coordinate são armazenados como propriedades do objeto GMSPanorama. Solicite um GMSPanorama do GMSPanoramaService usando a coordinate ou o panoramaID. O objeto resultante inclui os dois fragmentos de metadados e uma matriz de links para panoramas próximos.

Visualização de imagens do Street View

Adicionar um visualizador do Street View

As etapas básicas para adicionar um visualizador são:

  1. (Uma única vez) Siga as etapas em Primeiros passos para obter o SDK, obtenha uma chave e adicione as estruturas de trabalho necessárias.
  2. Crie ou atualize um ViewController. Se for necessário exibir o panorama quando esse controlador de visualização ficar visível, crie-o dentro do método loadView.
  3. Crie e instancie uma classe GMSPanoramaView usando o método GMSPanoramaView initWithFrame:. Se o panorama é usado como a única visualização do controlador de visualizações, é possível usar CGRectZero como o quadro do mapa — o mapa será automaticamente redimensionado.
  4. Defina o objeto GMSPanoramaView como a visualização do controlador de visualizações. Por exemplo: self.view = panoView;.
  5. Defina o local da imagem do Street View usando um método como moveNearCoordinate:.

O método a seguir adiciona um visualizador do Street View a um aplicativo.

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}

Objective-C

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

- (void)loadView {
    GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
    self.view = panoView;

    [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}
@end

Personalizar o visualizador

Personalize o visualizador restringindo os gestos disponíveis. Por padrão, o deslocamento, o zoom e o acesso a panoramas adjacentes estão ativados. Gestos individuais são controlados pelas propriedades de GMSPanoramaView. Essas propriedades ativam ou desativam gestos controlados pelo usuário. As alterações programáticas continuam possíveis após a desativação.

orientationGestures
Determina se o usuário poderá reorientar a câmera com um toque ou arrastando-a. Defina como NO para desativar as alterações de orientação da câmera.
zoomGestures
Determina se o usuário pode pinçar para alterar o zoom. Defina como NO para desativar o zoom.
navigationGestures
Determina se o usuário pode alterar qual panorama é visível. Os usuários podem usar um único toque nos links de navegação ou dois toques na visualização para alterar panoramas. Defina como NO para desativar alterações de navegação.

Ative ou desative todos os gestos de uma só vez com o método setAllGesturesEnabled:.

[panoView_ setAllGesturesEnabled:NO];

Iniciar Street View com o esquema de URL

As imagens do Google Street View podem ser visualizadas no aplicativo do Google Maps para iOS. Você pode iniciar o aplicativo do Google Maps para iOS no modo de visualização de rua com o esquema de URL comgooglemaps definindo o parâmetro mapmode como streetview. Veja a seguir um exemplo de URL que inicia o Street View. Para obter mais informações, consulte a documentação do esquema de URL.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Localizações e ponto de vista (POV) do Street View

A GMSPanoramaCamera permite definir o ponto de vista da câmera do Street View como uma combinação de rumo, inclinação e zoom.

O fragmento a seguir orienta a câmera para o sul e ligeiramente para baixo.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView_.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                  pitch:-10
                                                   zoom:1];

Orientação

A localização do Street View define o posicionamento do foco da câmera para uma imagem, mas não define a orientação da câmera para essa imagem. Para essa finalidade, o objeto GMSOrientation define duas propriedades:

  • heading define o ângulo de rotação em volta do centro da câmera em graus a partir do norte verdadeiro. Os rumos são medidos no sentido horário: o norte verdadeiro é 0, o leste é 90, o sul é 180 e o oeste é 270.
  • pitch (padrão 0) define a variância de ângulo para cima ou para baixo a partir da inclinação padrão inicial da câmera, que muitas vezes (mas nem sempre) é plana horizontal. (Por exemplo, uma imagem capturada em uma colina provavelmente terá um valor padrão de inclinação não horizontal.) Os ângulos de inclinação são medidos com valores positivos olhando para cima (até +90 graus, diretamente para cima e ortogonal à inclinação padrão) e valores negativos olhando para baixo (até -90 graus diretamente para baixo e ortogonal à inclinação padrão).

Zoom

O Street View permite níveis diferentes de detalhes de imagem por meio do zoom. Defina o nível de zoom programaticamente. Os usuários também podem alterar o nível no visualizador pinçando para alterar o zoom.

Movimentação da câmera

Após criar a GMSPanoramaView com uma câmera configurada ou padrão, é possível alterá-la de diversas maneiras. Quando você altera a câmera, pode animar o movimento de câmera resultante. A animação efetua uma interpolação entre os atributos atuais e os novos atributos da câmera.

Você pode modificar o objeto GMSPanoramaCamera e defini-lo na propriedade camera de GMSPanoramaView. Essa ação posiciona a câmera no novo ponto de vista, sem animação. Crie uma GMSCameraPosition para configurar qualquer combinação de orientação e zoom.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];

Você pode animar uma transição chamando o método animateToCamera:animationDuration: de GMSPanoramaView. Além disso, é possível controlar a câmera usando Core Animation. Esse recurso é disponibilizado na CALayer personalizada na GMSPanoramaView, GMSPanoramaLayer.

Marcadores no Street View

O objeto GMSPanoramaView pode exibir marcadores de mapa. É possível usar o mesmo objeto GMSMarker em um objeto GMSMapView ou GMSPanoramaView definindo as propriedades correspondentes:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;

O tamanho dos marcadores será redimensionado em função da distância entre a posição dos marcadores e a localização de GMSCameraView. Se a distância ficar muito grande, o marcador ficará muito pequeno para ser exibido e será oculto na visualização.

Observação: nem todos os recursos de marcador estão disponíveis ao usar GMSPanoramaView.

Defina a propriedade panoramaView como nil para removê-la de GMSPanoramaView.

Swift

marker.panoramaView = nil

Objective-C

marker.panoramaView = nil;

Eventos

É possível escutar eventos ocorridos no panorama do Street View, como o toque de um usuário em um panorama. Para escutar eventos, é necessário implementar o protocolo GMSPanoramaViewDelegate. Consulte o guia geral para eventos e a lista de métodos em GMSPanoramaViewDelegate.

Enviar comentários sobre…

Google Maps SDK for iOS
Google Maps SDK for iOS
Precisa de ajuda? Acesse nossa página de suporte.