Street View

Seleziona la piattaforma: Android iOS JavaScript

Street View di Google Maps ti consente di esplorare luoghi di tutto il mondo tramite Immagini a 360 gradi a livello stradale. Puoi esplorare punti di riferimento di tutto il mondo, visualizzare meraviglie, percorrere un viaggio o mostrare l'esterno della tua attività.

Panoramica

Google Street View offre viste panoramiche a 360° dalle strade designate in tutta l'area di copertura. La copertura disponibile tramite l'SDK è la uguale a quello dell'app Google Maps per iOS oppure https://maps.google.com/ Per scoprire di più su Street View e visualizzare le aree supportate su una mappa interattiva, consulta Informazioni su Street View.

Maps SDK for iOS fornisce un servizio di Street View per ottenere e manipolare le immagini utilizzate in Street View di Google Maps. Le immagini di Street View vengono restituite come panoramiche dal visualizzatore di Street View: una di tipo GMSPanoramaView.

Panorami di Street View

Ogni panoramica in Street View è un'immagine, o una serie di immagini, che fornisce una Visualizzazione a 360 gradi da un'unica posizione. Le immagini si conformano all'equirettangolare (Plate Carrée), che contiene una vista orizzontale a 360 gradi (un tutto intorno) e una visuale verticale di 180° (dall'immagine dritta a verso il basso). La panoramica a 360° risultante definisce una proiezione su una sfera con l'immagine avvolta sulla superficie bidimensionale di quella sfera.

I panorami di Street View sono visualizzabili con l'oggetto GMSPanoramaView. Questo offre all'utente la visualizzazione della panoramica come sfera, con un al centro della fotocamera. Puoi controllare in modo programmatico l'orientamento videocamera, nonché diverse proprietà che personalizzano lo spettatore.

Accesso ai dati di Street View

Le panoramiche in Street View sono identificate da due metadati:

panoramaID
L'ID univoco di una panoramica di Street View. Questo panoramaID può cambiare nel tempo e non è adatto per un utilizzo a lungo termine o codificato, riferimento. panoramaID è il metodo migliore per fornire accesso programmatico a immagini di Street View diverse.
coordinate
La posizione esatta di questa immagine, espressa come CLLocationCoordinate2D. Utilizza un coordinate per memorizzare in modo permanente la posizione di una panoramica o per tradurre le azioni dell'utente sulla mappa in un'immagine di Street View.

Sia panoramaID che coordinate vengono memorizzati come proprietà GMSPanorama oggetto. Puoi richiedere un GMSPanorama dal GMSPanoramaService utilizzando coordinate o panoramaID. La l'oggetto risultante includerà entrambi i metadati, nonché un array di link a panoramiche vicine.

Impostazione della posizione del panorama

La posizione della panoramica di Street View può essere impostata in base alle coordinate.

  • Il metodo moveNearCoordinate richiede una panoramica vicino a coordinata.

  • Il metodo moveNearCoordinate:radius è simile, ma consente puoi specificare un raggio di ricerca, in metri, intorno alla coordinata.

  • Il metodo moveNearCoordinate:source consente di specificare un'origine. Una sorgente è utile se vuoi limitare Street View alla ricerca di panoramiche esterne. Per impostazione predefinita, i panorami di luoghi sono: all'interno o all'esterno. Tieni presente che le panoramiche di esterni potrebbero non esistere per località specificata.

  • Il metodo moveNearCoordinate:radius:source ti consente di specificare sia un raggio e una sorgente.

Visualizzazione delle immagini di Street View

Aggiungere un visualizzatore di Street View

I passaggi di base per l'aggiunta di un visualizzatore sono:

  1. (Una volta) Segui i passaggi nella Guida introduttiva per scaricare l'SDK. ottenere una chiave e aggiungere i framework richiesti.
  2. Crea o aggiorna un ViewController. Se la panoramica viene visualizzata durante questo controller della vista diventa visibile, assicurati di crearlo all'interno il metodo loadView.
  3. Crea e crea un'istanza per un corso GMSPanoramaView utilizzando il metodo GMSPanoramaView metodo initWithFrame:. Se deve essere utilizzato come dell'unica vista del controller, allora CGRectZero potrebbe essere utilizzato come frame: la mappa verrà ridimensionata automaticamente.
  4. Imposta l'oggetto GMSPanoramaView come vista del view controller, ad esempio self.view = panoView;.
  5. Imposta la posizione dell'immagine di Street View utilizzando un metodo come moveNearCoordinate:.

L'esempio riportato di seguito consente di aggiungere un visualizzatore di Street View a un'app.

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
      

Personalizzazione del visualizzatore

Puoi personalizzare il visualizzatore limitando i gesti disponibili. Per impostazione predefinita, la panoramica, lo zoom e il passaggio ai panorami adiacenti sono attivati. I singoli gesti vengono controllati tramite le proprietà di GMSPanoramaView. Queste proprietà attivano o disattivano i gesti controllati dall'utente. Le modifiche programmatiche sono comunque possibili quando il gesto è disattivato.

orientationGestures
Indica se l'utente potrà ruotare la fotocamera toccando o trascinando. Impostalo su NO per disattivare le modifiche dell'orientamento della fotocamera.
zoomGestures
Indica se l'utente può pizzicare per eseguire lo zoom. Imposta su NO per disattivare lo zoom.
navigationGestures
Se l'utente può modificare la panoramica visibile. Utenti puoi usare un solo tocco sui link di navigazione o toccare due volte la visualizzazione per cambiare panorami Impostati su NO per disattivare le modifiche alla navigazione.

Puoi attivare o disattivare tutti i gesti contemporaneamente con l'icona setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Avvio di Street View con lo schema URL

Le immagini di Google Street View sono visualizzabili da Google Maps per iOS un'applicazione. Puoi avviare l'applicazione Google Maps per iOS in strada modalità di visualizzazione con lo schema URL comgooglemaps impostando la mapmode su streetview. Esempio di URL che aprirà Street View è riportata di seguito. Per saperne di più, consulta lo schema URL documentazione.

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

Luoghi di Street View e punto di vista (POV)

L'icona GMSPanoramaCamera ti consente di impostare il punto di vista di Street View come una combinazione di intestazione, beccheggio e zoom.

I gruppi di snippet riportati di seguito orientano la videocamera verso sud e leggermente verso il basso.

Swift

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

Objective-C

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

Orientamento

La posizione di Street View definisce il posizionamento del fuoco della fotocamera per un'immagine, ma non l'orientamento della fotocamera per quell'immagine. A questo scopo, l'oggetto GMSOrientation definisce due proprietà:

  • heading definisce l'angolo di rotazione intorno al locus della videocamera in gradi rispetto al nord vero. Le intestazioni vengono misurate in senso orario: il nord vero è 0, l'est è 90, il sud è 180, l'ovest è 270.
  • pitch (il valore predefinito 0) definisce la varianza dell'angolo "verso l'alto" o "giù" dal l'intonazione iniziale predefinita della videocamera, che spesso (ma non sempre) è piatta orizzontale. Ad esempio, un'immagine scattata su una collina probabilmente mostrerà un tono predefinito non orizzontale). Gli angoli di inclinazione vengono misurati con valori positivi rivolti verso l'alto (fino a +90 gradi in verticale e ortogonali a l'inclinazione predefinita) e i valori negativi rivolti verso il basso (fino a -90 gradi) dritta verso il basso e ortogonale all'inclinazione predefinita).

Zoom

Street View supporta diversi livelli di dettaglio dell'immagine attraverso l'uso dello zoom. Puoi impostare il livello di zoom in modo programmatico oppure gli utenti possono modificarlo in nel visualizzatore pizzicando lo schermo per aumentare lo zoom.

Spostamento della videocamera

Una volta creato il GMSPanoramaView e configurata o impostata come predefinita una videocamera, puoi modificarlo in diversi modi. Quando cambi la videocamera, hai la possibilità di animare il movimento risultante della videocamera. La l'animazione si interpola tra gli attributi correnti della videocamera e i nuovi degli attributi fotocamera.

Puoi modificare l'oggetto GMSPanoramaCamera e impostarlo nella Proprietà camera di GMSPanoramaView. La videocamera verrà agganciata al nuovo punto di vista senza animazione. È possibile creare un GMSCameraPosition per configurare qualsiasi combinazione di orientamento e zoom.

Swift

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

Objective-C

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

Puoi animare una transizione richiamando il metodo Metodo animateToCamera:animationDuration: di GMSPanoramaView. Inoltre, puoi controllare la videocamera tramite Core Animation. Questa operazione viene eseguita disponibile tramite il CALayer personalizzato su GMSPanoramaView, GMSPanoramaLayer.

Indicatori in Street View

L'oggetto GMSPanoramaView è in grado di visualizzare gli indicatori sulla mappa. Puoi utilizzare lo lo stesso oggetto GMSMarker in unGMSMapView GMSPanoramaView impostando le proprietà corrispondenti:

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;
      

Le dimensioni degli indicatori variano in base alla distanza tra la posizione dell'indicatore e la posizione di GMSCameraView. Se questa distanza diventa troppo ottimo, l'indicatore diventerà troppo piccolo per essere visualizzato e verrà nascosto vista.

Imposta la proprietà panoramaView su nil per rimuoverla dal GMSPanoramaView.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Eventi

Puoi ascoltare gli eventi che si verificano nella panoramica di Street View, ad esempio quando un l'utente tocca la panoramica. Per ascoltare gli eventi, è necessario implementare il protocollo GMSPanoramaViewDelegate. Vedi la panoramica guida agli eventi e l'elenco dei metodi disponibili sul GMSPanoramaViewDelegate