Street View

Plattform auswählen: Android iOS JavaScript

Mit Google Maps Street View können Sie sich Orte auf der ganzen Welt anhand von 360°-Bildern auf Straßenebene ansehen. Sie können Sehenswürdigkeiten der Welt erkunden, Naturwunder ansehen, eine Reise planen oder die Außenansicht Ihres Unternehmens zeigen.

Übersicht

Google Street View stellt 360°-Panoramen von verschiedenen Straßen des gesamten Street View-Abdeckungsbereichs zur Verfügung. Die Abdeckung, die über das SDK verfügbar ist, entspricht der Abdeckung der Google Maps App für iOS oder https://maps.google.com/. Weitere Informationen zu Street View und eine interaktive Karte mit den unterstützten Gebieten finden Sie unter Street View.

Das Maps SDK for iOS bietet einen Street View-Dienst zum Abrufen und Bearbeiten der in Google Maps Street View verwendeten Bilder. Street View-Bilder werden als Panoramen zurückgegeben und können im Street View-Viewer angesehen werden, einem Objekt vom Typ GMSPanoramaView.

Street View-Panoramen

Jedes Street View-Panorama besteht aus einem oder mehreren Bildern, die von einem gemeinsamen Punkt aus aufgenommen wurden und eine 360-Grad-Ansicht eines einzelnen Orts ergeben. Die Bilder entsprechen der flächengleichen Projektion (Plate Carrée), die eine 360-Grad-Horizontalsicht (vollständige Rundumsicht) und eine 180-Grad-Vertikalsicht (von senkrecht oben bis senkrecht unten) bietet. Das resultierende 360-Grad-Panorama definiert eine Projektion auf einer Kugel, wobei das Bild auf die zweidimensionale Oberfläche dieser Kugel projiziert wird.

Street View-Panoramen können mit dem GMSPanoramaView-Objekt angesehen werden. Dieses Objekt bietet einen Viewer, der das Panorama als Kugel mit einer Kamera in der Mitte rendert. Sie können die Ausrichtung der Kamera sowie mehrere Eigenschaften des Viewers programmatisch steuern.

Auf Street View-Daten zugreifen

Street View-Panoramen werden durch eines von zwei Metadatenelementen bestimmt:

panoramaID
Die eindeutige ID eines Street View-Panoramas. Diese panoramaID kann sich im Laufe der Zeit ändern und eignet sich nicht als langfristige oder hartcodierte Referenz. Die panoramaID eignet sich am besten für den programmatischen Zugriff auf verschiedene Street View-Bilder.
coordinate
Der genaue Standort dieses Bilds, ausgedrückt als CLLocationCoordinate2D. Verwenden Sie coordinate, um einen Panoramastandort dauerhaft zu speichern oder Nutzeraktionen auf der Karte in ein Street View-Bild umzuwandeln.

Sowohl panoramaID als auch coordinate werden als Properties des GMSPanorama-Objekts gespeichert. Sie können eine GMSPanorama über die GMSPanoramaService mithilfe von coordinate oder panoramaID anfordern. Das resultierende Objekt enthält sowohl die Metadaten als auch eine Reihe von Links zu Panoramabildern in der Nähe.

Ort des Panoramas festlegen

Der Standort des Street View-Panoramas kann anhand der Koordinate festgelegt werden.

  • Mit der Methode moveNearCoordinate wird ein Panorama in der Nähe der Koordinate angefordert.

  • Die Methode moveNearCoordinate:radius ist ähnlich, ermöglicht es Ihnen aber, einen Suchradius in Metern um die Koordinate anzugeben.

  • Mit der Methode moveNearCoordinate:source können Sie eine Quelle angeben. Eine Quelle ist nützlich, wenn Sie Street View nur auf Panoramas beschränken möchten, die sich draußen befinden. Standardmäßig sind Panoramen von Orten entweder drinnen oder draußen. Für den angegebenen Ort sind möglicherweise keine Außenpanoramen verfügbar.

  • Mit der Methode moveNearCoordinate:radius:source können Sie sowohl einen Radius als auch eine Quelle angeben.

Street View-Bilder ansehen

Street View-Betrachter hinzufügen

Um ein Anzeigeprogramm hinzuzufügen, sind folgende grundlegende Schritte auszuführen:

  1. (Einmal) Folgen Sie der Anleitung unter Einstieg, um das SDK herunterzuladen, einen Schlüssel zu erhalten und die erforderlichen Frameworks hinzuzufügen.
  2. ViewController erstellen oder aktualisieren Wenn das Panorama angezeigt werden soll, sobald dieser Ansichtscontroller sichtbar wird, müssen Sie es in der loadView-Methode erstellen.
  3. Erstellen und instanziieren Sie eine GMSPanoramaView-Klasse mit der Methode GMSPanoramaView initWithFrame:. Wenn dies die einzige Ansicht des View Controllers sein soll, kann CGRectZero als Frame der Karte verwendet werden. Die Größe der Karte wird dann automatisch angepasst.
  4. Legen Sie das GMSPanoramaView-Objekt als Ansicht des View Controllers fest, z.B. self.view = panoView;.
  5. Legen Sie den Standort des Street View-Bilds mit einer Methode wie moveNearCoordinate: fest.

Im folgenden Beispiel wird ein Street View-Anzeigeprogramm zu einer App hinzugefügt.

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
      

Wiedergabefenster anpassen

Sie können das Anzeigeprogramm anpassen, indem Sie die verfügbaren Gesten einschränken. Standardmäßig sind Schwenken, Zoomen und der Wechsel zu benachbarten Panoramen aktiviert. Einzelne Touch-Gesten werden über Eigenschaften von GMSPanoramaView gesteuert. Mit diesen Properties lassen sich vom Nutzer gesteuerte Touch-Gesten aktivieren oder deaktivieren. Programmatische Änderungen sind auch dann möglich, wenn die Geste deaktiviert ist.

orientationGestures
Gibt an, ob der Nutzer die Kamera durch Tippen oder Ziehen neu ausrichten kann. Legen Sie NO fest, um die Ausrichtungsänderungen der Kamera zu deaktivieren.
zoomGestures
Ob der Nutzer durch Auseinander- und Zusammenziehen der Finger zoomen kann. Legen Sie NO fest, um den Zoom zu deaktivieren.
navigationGestures
Ob der Nutzer das sichtbare Panorama ändern kann. Nutzer können Navigationslinks antippen oder die Ansicht doppelt antippen, um zwischen Panoramen zu wechseln. Legen Sie NO fest, um Navigationsänderungen zu deaktivieren.

Mit der Methode setAllGesturesEnabled: können Sie alle Touch-Gesten gleichzeitig aktivieren oder deaktivieren.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Street View mit dem URL-Schema starten

Google Street View-Bilder können in der Google Maps App für iOS angesehen werden. Sie können die Google Maps App für iOS im Street View-Modus mit dem comgooglemaps-URL-Schema starten, indem Sie den Parameter mapmode auf streetview festlegen. Unten sehen Sie ein Beispiel für eine URL, über die Street View geöffnet wird. Weitere Informationen finden Sie in der Dokumentation zum URL-Schema.

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

Street View-Standorte und -Perspektiven

Mit GMSPanoramaCamera können Sie den Blickwinkel der Street View-Kamera als Kombination aus Peilung, Neigung und Zoom festlegen.

In den folgenden Codeausschnitten wird die Kamera nach Süden ausgerichtet und leicht nach unten geneigt.

Swift

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

Objective-C

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

Ausrichtung

Der Street View-Standort definiert die Position des Kamerafokus für ein Bild, aber nicht die Ausrichtung der Kamera für dieses Bild. Die Ausrichtung wird über zwei Eigenschaften des GMSOrientation-Objekts definiert:

  • heading gibt die Himmelsrichtung der Kamera in Grad an, ausgehend vom geografischen Nordpol. Aufnahmerichtungen werden im Uhrzeigersinn gemessen: 0 Grad entspricht dem geografischen Norden, 90 Grad dem Osten, 180 Grad dem Süden und 270 Grad dem Westen.
  • pitch hat den Standardwert 0 und gibt die Neigung der Kamera nach oben oder unten an, ausgehend von der ursprünglichen Neigungsposition der Kamera, die je nach Straßenlage oft (aber nicht immer) horizontal ist. So ist beispielsweise bei Bildern, die auf einem Hügel aufgenommen wurden, die Standardneigung wahrscheinlich nicht horizontal. Neigungswinkel werden mit positiven Werten nach oben (bis +90 Grad gerade nach oben und senkrecht zum Standardneigungswinkel) und negativen Werten nach unten (bis -90 Grad gerade nach unten und senkrecht zum Standardneigungswinkel) gemessen.

Zoom

Street View unterstützt verschiedene Bilddetailebenen mithilfe der Vergrößerung. Sie können die Zoomstufe programmatisch festlegen oder Nutzer können die Stufe im Viewer ändern, indem sie mit den Fingern zusammen- oder auseinanderziehen.

Kamera bewegen

Nachdem Sie die GMSPanoramaView erstellt haben und sie entweder eine konfigurierte oder eine Standardkamera hat, können Sie sie auf verschiedene Arten ändern. Wenn Sie die Kamera wechseln, haben Sie die Möglichkeit, die resultierende Kamerabewegung zu animieren. Bei der Animation wird zwischen den aktuellen Kameraattributen und den neuen Kameraattributen interpoliert.

Sie können das GMSPanoramaCamera-Objekt ändern und es für die camera-Eigenschaft von GMSPanoramaView festlegen. Die Kamera wird ohne Animation auf den neuen Blickwinkel ausgerichtet. Mit einem GMSCameraPosition können beliebige Kombinationen aus Ausrichtung und Zoom konfiguriert werden.

Swift

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

Objective-C

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

Sie können einen Übergang animieren, indem Sie die Methode animateToCamera:animationDuration: von GMSPanoramaView aufrufen. Zusätzlich können Sie die Kamera mit Core Animation steuern. Diese Funktion ist über die benutzerdefinierte CALayer auf GMSPanoramaView, GMSPanoramaLayer verfügbar.

Markierungen in Street View

Mit dem Objekt GMSPanoramaView können Kartenmarkierungen angezeigt werden. Sie können dasselbe GMSMarker-Objekt für ein GMSMapView- oder ein GMSPanoramaView-Objekt verwenden, indem Sie die entsprechenden Properties festlegen:

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;
      

Die Größe der Markierungen wird in Abhängigkeit von der Entfernung zwischen der Position der Markierung und dem Standort der GMSCameraView skaliert. Wenn dieser Abstand zu groß wird, wird die Markierung zu klein, um angezeigt zu werden, und ist nicht mehr sichtbar.

Legen Sie das Attribut panoramaView auf nil fest, um es aus der GMSPanoramaView zu entfernen.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Ereignisse

Sie können Ereignisse abhören, die im Street View-Panorama auftreten, z. B. wenn ein Nutzer auf das Panorama tippt. Damit auf Ereignisse gewartet werden kann, müssen Sie das Protokoll GMSPanoramaViewDelegate implementieren. Weitere Informationen finden Sie im Leitfaden zu Ereignissen und in der Liste der Methoden auf der Seite GMSPanoramaViewDelegate.