Street View

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

Com o Street View do Google Maps, você pode explorar lugares do mundo todo usando imagens em 360 graus no nível da rua. Você pode explorar pontos de referência mundiais, ver maravilhas naturais, navegar em uma viagem ou mostrar o lado externo da sua empresa.

Visão geral

O Google Street View oferece vistas panorâmicas de 360 graus de vias designadas em toda a área de cobertura. A cobertura disponível pelo SDK é a mesma do app Google Maps para iOS ou https://maps.google.com/. Leia mais sobre o Street View e veja as áreas compatíveis em um mapa interativo. Acesse Sobre o Street View.

O SDK do Maps para iOS oferece um serviço do Street View para recuperar e manipular imagens usadas no Street View do Google Maps. 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 completa em 360 graus de um único local. As imagens estão de acordo com a projeção equidistante (Plate Carrée), que contém 360 graus de visualização horizontal (uma volta completa ao redor de um ponto) e 180 graus de visualização vertical (do ponto mais alto ao mais baixo). O panorama resultante de 360 graus define uma projeção em uma esfera com a imagem encapsulada à superfície bidimensional dessa esfera.

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

Como acessar dados do Street View

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

panoramaID
O código exclusivo de um panorama do Street View. Esta panoramaID pode mudar ao longo do tempo e não é adequada como uma referência de longo prazo ou codificada. O panoramaID é mais indicado para fornecer acesso programático a diferentes imagens do Street View.
coordinate
O local exato desta imagem, expresso como CLLocationCoordinate2D. Use um coordinate para armazenamento permanente de um local de panorama ou para transformar ações do usuário no mapa em uma imagem do Street View.

panoramaID e coordinate são armazenados como propriedades do objeto GMSPanorama. É possível solicitar um GMSPanorama do GMSPanoramaService usando coordinate ou panoramaID. O objeto resultante incluirá partes de metadados, bem como uma matriz de links para panoramas próximos.

Configuração do local do panorama

A localização do panorama do Street View pode ser definida com base na coordenada.

  • O método moveNearCoordinate solicita um panorama próximo à coordenada.

  • O método moveNearCoordinate:radius é semelhante, mas permite especificar um raio de pesquisa, em metros, ao redor da coordenada.

  • O método moveNearCoordinate:source permite especificar uma origem. Use uma origem para restringir o Street View de forma a procurar apenas panoramas externos. Por padrão, os panoramas dos locais ficam dentro ou fora. e pode ser que não existam panoramas externos para o local especificado.

  • O método moveNearCoordinate:radius:source permite especificar um raio e uma origem.

Como visualizar imagens do Street View

Como adicionar um visualizador do Street View

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

  1. (Uma vez) Siga as etapas em Primeiros passos para fazer o download do SDK, tenha uma chave e adicione os frameworks necessários.
  2. Crie ou atualize um ViewController. Se o panorama for exibido 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 ela for usada como a única visualização do controlador de visualização, o CGRectZero poderá ser usado como o frame do mapa. O mapa será redimensionado automaticamente.
  4. Defina o objeto GMSPanoramaView como a visualização do controlador de visualização, 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 GoogleMaps

class StreetView: UIViewController {

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

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

Objective-C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

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

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

@end
      

Como personalizar o visualizador

Personalize o visualizador restringindo os gestos disponíveis. Por padrão, as ações de deslocamento, aplicação de zoom e acesso a panoramas adjacentes são ativadas. Os gestos individuais são controlados pelas propriedades da GMSPanoramaView. Essas propriedades ativam ou desativam os gestos controlados pelo usuário, mas alterações programáticas ainda são possíveis quando o gesto está desativado.

orientationGestures
Se o usuário poderá reorientar a câmera tocando ou arrastando. Defina como NO para desativar as mudanças de orientação na câmera.
zoomGestures
Se o usuário pode fazer gesto de pinça para aplicar zoom. Defina como NO para desativar o zoom.
navigationGestures
Se o usuário pode alterar o panorama que está visível. Os usuários podem usar um único toque nos links de navegação ou dois toques na visualização para mudar os panoramas. Defina como NO para desativar as mudanças de navegação.

É possível ativar ou desativar todos os gestos de uma só vez com o método setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Iniciar o Street View com o esquema de URL

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

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

Locais e ponto de vista (POV) do Street View

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

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

Swift

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

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Orientação

O local 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 torno do local da câmera em graus em relação ao norte verdadeiro. Os títulos são medidos no sentido horário: o norte verdadeiro é 0, o leste é 90, o sul é 180 e o oeste é 270.
  • pitch (0 padrão) define a variação do ângulo "para cima" ou "para baixo" a partir da inclinação inicial padrão da câmera, que é, geralmente, mas nem sempre, 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 apontando para cima (até +90 graus diretamente para cima e ortogonal à inclinação padrão) e valores negativos para baixo (até -90 graus diretamente para baixo e ortogonal à inclinação padrão).

Amplie

O Street View permite níveis diferentes de detalhes de imagem por meio do zoom. Você pode definir o nível de zoom de maneira programática, ou os usuários podem mudar o nível no visualizador, fazendo gesto de pinça para aplicar zoom.

Como mover a câmera

Depois de criar o GMSPanoramaView, com uma câmera configurada ou padrão, é possível mudá-lo de várias maneiras. Quando você movimenta a câmera, você tem a opção de animar o movimento resultante da câmera. A animação alterna entre os atributos atuais da câmera e os novos atributos.

É possível modificar o objeto GMSPanoramaCamera e defini-lo na propriedade camera do GMSPanoramaView. Isso ajustará a câmera para o novo ponto de vista sem animação. Um GMSCameraPosition pode ser criado para configurar qualquer combinação de orientação e zoom.

Swift

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

Objective-C

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. Isso é disponibilizado por meio do CALayer personalizado em GMSPanoramaView, GMSPanoramaLayer.

Marcadores no Street View

O objeto GMSPanoramaView é capaz de 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á dimensionado como uma função da distância entre a posição do marcador e a localização do GMSCameraView. Se essa distância ficar muito grande, o marcador ficará muito pequeno para ser exibido e será ocultado.

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

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Eventos

Você pode detectar eventos que ocorrem no panorama do Street View, como quando um usuário toca no panorama. Para detectar eventos, é necessário implementar o protocolo GMSPanoramaViewDelegate. Consulte o guia geral de eventos e a lista de métodos na GMSPanoramaViewDelegate.