Street View

Seleziona la piattaforma: Android iOS JavaScript

Street View di Google Maps consente di esplorare luoghi in tutto il mondo con immagini a 360 gradi a livello stradale. Puoi esplorare i punti di riferimento del mondo, esplorare le meraviglie della natura, esplorare un viaggio o mostrare l'esterno dell'attività.

Panoramica

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

L'SDK di Maps per 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 e vengono visualizzate nel visualizzatore Street View, un oggetto di tipo GMSPanoramaView.

Panoramiche in Street View

Ogni panorama di Street View è costituito da un'immagine o da un insieme di immagini che offre una visualizzazione completa a 360 gradi da una singola posizione. Le immagini sono conformi alla proiezione equirettangolare (Plate Carrée), che contiene 360 gradi di visualizzazione orizzontale (a tutto tondo) e 180 gradi di visuale verticale (dal dritto verso l'alto) La panoramica a 360° risultante definisce una proiezione su una sfera con l'immagine avvolta nella superficie bidimensionale.

Le panoramiche di Street View sono visibili con l'oggetto GMSPanoramaView. Questo oggetto offre un visualizzatore che fa apparire il panorama come una sfera, con una fotocamera al centro. Puoi controllare in modo programmatico l'orientamento della videocamera, oltre a diverse proprietà che personalizzano il visualizzatore.

Accedere ai dati di Street View

Le panoramiche di Street View sono identificate da uno di due elementi di metadati:

panoramaID
L'ID univoco di una panoramica di Street View. Il panoramaID potrebbe cambiare nel tempo e non è adatto come riferimento a lungo termine o hardcoded. panoramaID è la soluzione migliore per fornire accesso programmatico a diverse immagini di Street View.
coordinate
La posizione esatta di questa immagine, espressa come CLLocationCoordinate2D. Utilizza un coordinate per l'archiviazione permanente di una località panoramica o per tradurre le azioni degli utenti sulla mappa in un'immagine di Street View.

Sia panoramaID che coordinate sono archiviati come proprietà dell'oggetto GMSPanorama. Puoi richiedere un GMSPanorama da GMSPanoramaService utilizzando coordinate o panoramaID. L'oggetto risultato includerà entrambi i metadati e un array di link alle panoramiche nelle vicinanze.

Impostazione della posizione della panoramica

La posizione della panoramica di Street View può essere impostata in base alla coordinata.

  • Il metodo moveNearCoordinate richiede una panoramica vicino alla coordinata.

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

  • Il metodo moveNearCoordinate:source consente di specificare un'origine. Un'origine è utile se vuoi limitare l'utilizzo di Street View solo per le panoramiche all'esterno. Per impostazione predefinita, le panoramiche delle località sono all'interno o all'esterno. Tieni presente che potrebbero non esistere panoramiche esterne per la località specificata.

  • Il metodo moveNearCoordinate:radius:source consente di specificare sia un raggio che un'origine.

Visualizzazione delle immagini di Street View

Aggiungere un visualizzatore di Street View

Ecco i passaggi di base per aggiungere uno spettatore:

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

L'esempio riportato di seguito aggiunge 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, le opzioni panoramica, zoom, zoom e per spostarti tra le panoramiche adiacenti sono tutte attive. I singoli gesti sono controllati tramite le proprietà di GMSPanoramaView. Queste proprietà attivano o disattivano i gesti controllati dagli utenti; le modifiche programmatiche sono ancora possibili quando il gesto è disattivato.

orientationGestures
Se l'utente potrà riorientare la fotocamera toccando o trascinando. Imposta NO per disattivare i cambiamenti di orientamento della fotocamera.
zoomGestures
Indica se l'utente potrà pizzicare per eseguire lo zoom. Impostala su NO per disabilitare lo zoom.
navigationGestures
Se l'utente può modificare la panoramica visibile. Gli utenti possono utilizzare un singolo tocco sui link di navigazione oppure toccare due volte la visualizzazione per cambiare le viste panoramiche Impostate su NO per disattivare le modifiche alla navigazione.

Puoi attivare o disattivare tutti i gesti contemporaneamente con il metodo setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Lancio di Street View con lo schema URL

Le immagini di Google Street View sono visibili dall'applicazione Google Maps per iOS. Puoi avviare l'applicazione Google Maps per iOS in modalità Street View con lo schema URL di comgooglemaps impostando il parametro mapmode su streetview. Di seguito è riportato un esempio di URL che avvierà Street View. Per ulteriori informazioni, consulta la documentazione dello schema URL.

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

Posizione e punto di vista (POV) di Street View

La GMSPanoramaCamera consente di impostare il punto di vista della fotocamera Street View come combinazione di intestazione, tono e zoom.

I seguenti insiemi di snippet 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 la posizione della fotocamera per un'immagine, ma non definisce l'orientamento della fotocamera. A tale scopo, l'oggetto GMSOrientation definisce due proprietà:

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

Assumi una prospettiva

Street View supporta diversi livelli di dettaglio delle immagini grazie all'uso dello zoom. Puoi impostare il livello di zoom in modo programmatico oppure gli utenti possono cambiare il livello nel visualizzatore premendo sullo zoom.

Spostamento della videocamera in corso...

Dopo aver creato la videocamera GMSPanoramaView e che questa ha una videocamera configurata o predefinita, puoi modificarla in diversi modi. Quando cambi la fotocamera, hai la possibilità di animare il movimento della videocamera risultante. L'animazione interpola tra gli attributi attuali della videocamera e quelli nuovi.

Puoi modificare l'oggetto GMSPanoramaCamera e impostarlo sulla proprietà camera per la proprietà GMSPanoramaView. In questo modo la videocamera viene 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 chiamando il metodo animateToCamera:animationDuration: di GMSPanoramaView. Inoltre, puoi controllare la videocamera utilizzando Animazioni principali. Questo viene reso disponibile tramite il CALayer personalizzato su GMSPanoramaView, GMSPanoramaLayer.

Indicatori in Street View

L'oggetto GMSPanoramaView è in grado di visualizzare indicatori di mappa. Puoi utilizzare lo stesso oggetto GMSMarker in un oggetto GMSMapView o 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 verranno scalate in funzione della distanza tra la posizione dell'indicatore e la posizione di GMSCameraView. Se questa distanza diventa troppo grande, l'indicatore diventerà troppo piccolo per essere visualizzato e non sarà visibile.

Imposta la proprietà panoramaView su nil per rimuoverla da 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 utente tocca la panoramica. Per ascoltare gli eventi, devi implementare il protocollo GMSPanoramaViewDelegate. Consultate la guida generale agli eventi e l'elenco dei metodi nella GMSPanoramaViewDelegate.