
Google Maps Street View ti consente di esplorare luoghi di tutto il mondo attraverso immagini a 360 gradi a livello stradale. Puoi esplorare punti di riferimento internazionali, ammirare meraviglie della natura, navigare durante un viaggio o mostrare l'esterno della tua attività.
Panoramica
Google Street View fornisce viste panoramiche a 360°
delle strade designate in tutta la sua area di copertura. La copertura disponibile tramite l'SDK è la stessa dell'app Google Maps per iOS o di https://maps.google.com/. Puoi
scoprire di più su Street View e visualizzare le aree
supportate su una mappa interattiva nella pagina Informazioni su Street View
.
Maps SDK for iOS fornisce un servizio Street View per ottenere e manipolare le immagini utilizzate in Google Maps Street View. Le immagini di Street View vengono restituite come panoramiche e vengono visualizzate all'interno del visualizzatore di Street View, un oggetto di tipo GMSPanoramaView.
Panoramiche in Street View
Ogni panoramica in Street View è un'immagine o un insieme di immagini che fornisce una visuale completa a 360 gradi da un'unica posizione. Le immagini sono conformi alla proiezione equirettangolare (Plate Carrée), che contiene 360 gradi di visuale orizzontale (una panoramica completa) e 180 gradi di visuale verticale (dall'alto verso il basso). La vista panoramica a 360 gradi risultante definisce una proiezione su una sfera con l'immagine avvolta sulla superficie bidimensionale di quella sfera.
Le panoramiche in Street View sono visualizzabili con l'oggetto GMSPanoramaView. Questo oggetto fornisce un visualizzatore che eseguirà il rendering della
panoramica come una sfera, con una videocamera al centro. Puoi controllare l'orientamento della videocamera in modo programmatico, nonché diverse proprietà che personalizzano il visualizzatore.
Accedi ai dati di Street View
Le panoramiche in Street View sono identificate da uno dei due metadati seguenti:
panoramaID- L'ID univoco di una Panoramica in Street View. Questo
panoramaIDpotrebbe cambiare nel tempo e non è adatto come riferimento a lungo termine o hardcoded. L'panoramaIDè ideale per fornire l'accesso programmatico a diverse immagini di Street View. coordinate- La posizione esatta di questa immagine, espressa come
CLLocationCoordinate2D. Utilizza uncoordinateper l'archiviazione permanente di una posizione panoramica o per tradurre le azioni dell'utente sulla mappa in un'immagine di Street View.
Sia panoramaID che coordinate vengono archiviati come proprietà dell'oggetto GMSPanorama. Puoi richiedere un GMSPanorama dal GMSPanoramaService utilizzando coordinate o panoramaID. L'oggetto risultante includerà entrambi i metadati, oltre a un array di link ai panorami nelle vicinanze.
Imposta la posizione della panoramica
La posizione della panoramica in Street View può essere impostata in base alle coordinate.
Il metodo
moveNearCoordinaterichiede una panoramica vicino alla coordinata.Il metodo
moveNearCoordinate:radiusè simile, ma ti consente di specificare un raggio di ricerca, in metri, attorno alla coordinata.Il metodo
moveNearCoordinate:sourceconsente di specificare un'origine. Un'origine è utile se vuoi limitare Street View in modo che cerchi solo panorami esterni. Per impostazione predefinita, le panoramiche delle località sono interne o esterne. Tieni presente che potrebbero non esistere panoramiche esterne per la località specificata.Il metodo
moveNearCoordinate:radius:sourceconsente di specificare sia un raggio sia un'origine.
Visualizzazione delle immagini di Street View
Aggiunta di un visualizzatore di Street View
I passaggi di base per aggiungere un visualizzatore sono:
- (Una volta) Segui i passaggi descritti in Inizia per scaricare l'SDK, ottenere una chiave e aggiungere i framework richiesti.
- Crea o aggiorna un
ViewController. Se la panoramica verrà visualizzata quando questo view controller diventa visibile, assicurati di crearla all'interno del metodoloadView. - Crea e crea un'istanza di una classe
GMSPanoramaViewutilizzando il metodoGMSPanoramaViewinitWithFrame:. Se deve essere utilizzata come unica visualizzazione del view controller,CGRectZeropotrebbe essere utilizzato come frame della mappa, che verrà ridimensionata automaticamente. - Imposta l'oggetto
GMSPanoramaViewcome visualizzazione del controller di visualizzazione. Ad esempio,self.view = panoView;. - Imposta la posizione dell'immagine di Street View utilizzando un metodo come
moveNearCoordinate:.
L'esempio seguente 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
Personalizza il visualizzatore
Puoi personalizzare il visualizzatore limitando i gesti disponibili. Per impostazione predefinita, la panoramica, lo zoom e lo spostamento verso le panoramiche adiacenti sono tutti attivi.
I singoli gesti sono 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à riorientare la videocamera toccando o trascinando. Imposta su
NOper disattivare le modifiche all'orientamento della fotocamera. zoomGestures- Indica se l'utente potrà pizzicare per aumentare lo zoom. Imposta su
NOper disattivare lo zoom. navigationGestures- Se l'utente potrà modificare la panoramica visibile. Gli utenti possono toccare una volta i link di navigazione o toccare due volte la visualizzazione per cambiare panoramica. Imposta su
NOper 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];
Avvio di Street View con lo schema URL
Le immagini di Google Street View sono visualizzabili dall'applicazione Google Maps per iOS. Puoi avviare l'applicazione Google Maps per iOS in modalità Street View con lo schema URL comgooglemaps impostando il parametro mapmode su streetview. Di seguito è riportato un esempio di URL che avvia Street View. Per saperne di più, consulta la documentazione relativa allo schema URL.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Località e punto di vista (POV) di Street View
GMSPanoramaCamera ti consente di impostare il punto di vista della fotocamera di Street View come combinazione di direzione, inclinazione e zoom.
I seguenti set di snippet orienteranno 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 della messa a fuoco della fotocamera per un'immagine, ma non l'orientamento della fotocamera per l'immagine.
A questo scopo, l'oggetto GMSOrientation definisce due proprietà:
headingdefinisce l'angolo di rotazione attorno al punto di osservazione della videocamera in gradi rispetto al nord geografico. Le direzioni vengono misurate in senso orario: il nord geografico è 0, l'est è 90, il sud è 180, l'ovest è 270.pitch(valore predefinito0) definisce la variazione dell'angolo "verso l'alto" o "verso il basso" rispetto al beccheggio predefinito iniziale della videocamera, che spesso (ma non sempre) è piatto orizzontale. Ad esempio, un'immagine scattata su una collina mostrerà probabilmente un'inclinazione predefinita non orizzontale. Gli angoli di inclinazione vengono misurati con valori positivi verso l'alto (fino a +90 gradi verso l'alto e ortogonali all'inclinazione predefinita) e valori negativi verso il basso (fino a -90 gradi verso il basso e ortogonali all'inclinazione predefinita).
Zoom
Street View supporta diversi livelli di dettaglio delle immagini tramite l'uso dello zoom. Puoi impostare il livello di zoom in modo programmatico oppure gli utenti possono modificarlo nel visualizzatore pizzicando per aumentare o diminuire lo zoom.
Spostamento della videocamera
Dopo aver creato GMSPanoramaView e aver configurato o impostato una videocamera predefinita, puoi modificarla in uno dei seguenti modi. Quando cambi la videocamera, hai la possibilità di animare il movimento della videocamera risultante. L'animazione esegue l'interpolazione tra gli attributi della videocamera attuali e quelli nuovi.
Puoi modificare l'oggetto GMSPanoramaCamera e impostarlo sulla proprietà camera di GMSPanoramaView. In questo modo, la videocamera si sposterà sul 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 fotocamera utilizzando Core Animation. Questo è reso 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 stesso oggetto GMSMarker su 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 ridimensionate in base alla distanza tra la posizione dell'indicatore e quella di GMSCameraView. Se questa distanza diventa troppo grande, l'indicatore diventa troppo piccolo per essere visualizzato e viene nascosto.
Imposta la proprietà panoramaView su nil per rimuoverla da
GMSPanoramaView.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Eventi
Puoi rimanere in ascolto degli eventi che si verificano nella Panoramica in Street View, ad esempio quando un utente tocca la panoramica. Per ascoltare gli eventi, è necessario implementare il protocollo GMSPanoramaViewDelegate. Consulta la guida generale agli eventi e l'elenco dei metodi nella GMSPanoramaViewDelegate.