O Street View do Google Maps permite explorar lugares do mundo todo Imagens da rua em 360 graus. Você pode explorar pontos de referência mundiais, ver fazer perguntas, navegar em uma viagem ou mostrar a parte externa de 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 é de
igual ao do app Google Maps para iOS ou
https://maps.google.com/
. Você pode ler mais sobre
Street View e veja as áreas suportadas em um mapa interativo, em
Sobre o Street View.
O SDK do Maps para iOS oferece um serviço do Street View
para obter e manipular as imagens usadas no Street View do Google Maps.
As imagens do Street View são retornadas como panoramas e
no visualizador do Street View, uma
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 em conformidade com o modelo equirretangular (Plate Carrée), que contém 360 graus de visualização horizontal (uma completa) e 180 graus de visualização vertical (do ponto mais direto ao para baixo). O panorama de 360 graus resultante define uma projeção em uma esfera com a imagem envolvida na superfície bidimensional dessa esfera.
Os panoramas do Street View são exibidos com o objeto GMSPanoramaView
. Isso
fornece um visualizador que renderiza o panorama como uma esfera, com um
central. Você pode controlar programaticamente a orientação do
câmera, além de diversas 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 ID exclusivo de um panorama do Street View. Este
panoramaID
pode mudar com o tempo e não é adequado como longo prazo ou de referência. OpanoramaID
é melhor usado para fornecer acesso programático a diferentes imagens do Street View. coordinate
- O local exato da imagem, expresso como um
CLLocationCoordinate2D
. Usar umcoordinate
para armazenamento persistente do local de um panorama ou para traduzir ações do usuário no o mapa em uma imagem do Street View.
O panoramaID
e o coordinate
são armazenados como propriedades do
objeto GMSPanorama
. Você pode solicitar uma GMSPanorama
do
GMSPanoramaService
usando coordinate
ou panoramaID
. O
objeto resultante incluirá ambos os metadados, bem como uma matriz de
links para panoramas próximos.
Como definir o local do panorama
O local do panorama do Street View pode ser definido com base no coordenada.
O método
moveNearCoordinate
solicita um panorama perto do 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. Uma fonte é útil se você quer restringir o Street View para procurar apenas ou panoramas que estão ao ar livre. Por padrão, os panoramas de locais são interna ou externa. É possível que não existam panoramas externos para em um local específico.O método
moveNearCoordinate:radius:source
permite especificar raio e uma origem.
Como visualizar imagens do Street View
Adicionar um visualizador do Street View
As etapas básicas para adicionar um visualizador são:
- (Uma vez) Siga os passos em Primeiros passos para obter o SDK, conseguir uma chave e adicionar os frameworks necessários.
- Crie ou atualize um
ViewController
. Se o panorama for exibido quando esse controlador de visualização ficar visível, crie-o dentro o métodoloadView
. - Crie e instancie uma classe
GMSPanoramaView
usando o MétodoGMSPanoramaView
initWithFrame:
. Se o panorama é usado como a única visualização do controlador de visualizações, é possível usarCGRectZero
como o frame do mapa. O mapa será redimensionado automaticamente. - Defina o objeto
GMSPanoramaView
como a visualização do controlador. Por exemplo:self.view = panoView;
. - 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
Personalizar o visualizador
Personalize o visualizador restringindo os gestos disponíveis. De
padrão, a movimentação, o zoom e o acesso a panoramas adjacentes estão ativados.
Gestos individuais são controlados pelas propriedades do GMSPanoramaView
.
Essas propriedades ativam ou desativam gestos controlados pelo usuário. programática
ainda é possível fazer mudanças quando o gesto está desativado.
orientationGestures
- Define se o usuário pode reorientar a câmera tocando ou
arrastando. Defina como
NO
para desativar as mudanças de orientação no câmera. zoomGestures
- Define se o usuário pode fazer gesto de pinça para aplicar zoom. Definir como
NO
para desativar o zoom. navigationGestures
- Define se o usuário poderá mudar qual panorama é visível. Usuários
pode usar um único toque nos links de navegação ou dois toques na visualização para mudar
panoramas Defina como
NO
para desativar as mudanças de navegação.
Você pode ativar ou desativar todos os gestos de uma só vez com o
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 do Google Maps para iOS. Você pode iniciar o aplicativo do Google Maps para iOS na rua
com o esquema de URL comgooglemaps
definindo a propriedade mapmode
como streetview
. Exemplo de URL que inicia o Street View
aparece abaixo. Para mais informações, consulte o Esquema de URL
na documentação do Google Cloud.
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 do Street View.
câmera como uma combinação de direção, 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 um
mas não define a orientação da câmera para essa imagem.
Para isso, o objeto GMSOrientation
define duas propriedades:
heading
define o ângulo de rotação em torno do centro da câmera. em graus em relação ao 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ão0
) define a variância do ângulo "para cima" ou "para baixo" do a inclinação inicial padrão da câmera, que geralmente (mas nem sempre) é plana horizontal. Por exemplo, uma imagem tirada em uma colina provavelmente terá o 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 para cima e ortogonalmente a inclinação padrão) e valores negativos olhando para baixo (até -90 graus) para baixo e ortogonalmente em relação à inclinação padrão).
Zoom
O Street View permite níveis diferentes de detalhes de imagem por meio do zoom. É possível definir o nível de zoom de maneira programática, ou os usuários podem alterar o nível em o visualizador fazendo gesto de pinça para aplicar zoom.
Como mover a câmera
Depois de criar a GMSPanoramaView
, que tem uma configuração
câmera padrão, há várias maneiras de alterá-la. Quando você altera o
você tem a opção de animar o movimento resultante dela. A
animação alterna entre os atributos atuais e os novos da câmera.
É possível modificar o objeto GMSPanoramaCamera
e defini-lo no
Propriedade camera
de GMSPanoramaView
. Isso encaixa a câmera no novo
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 é feito
disponível pelo CALayer
personalizado no GMSPanoramaView
,
GMSPanoramaLayer
Marcadores no Street View
O objeto GMSPanoramaView
pode mostrar marcadores do mapa. Você pode 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 o
posição e a localização do GMSCameraView
. Se a distância ficar muito
ótimo, o marcador ficará muito pequeno para ser exibido e ficará oculto
visualização.
Defina a propriedade panoramaView
como nil
para removê-la do
GMSPanoramaView
.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Eventos
Você pode detectar eventos que ocorrem no panorama do Street View, como quando uma
o usuário toca no panorama. Para detectar eventos, é necessário implementar o protocolo
GMSPanoramaViewDelegate
. Ver o
guia para eventos e a lista de métodos na
GMSPanoramaViewDelegate
.