Street View

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Plattform auswählen: Android iOS JavaScript

Mit Google Maps Street View können Sie Orte auf der ganzen Welt durch 360-Grad-Bilder auf Straßenebene erkunden. Sie können Sehenswürdigkeiten und Sehenswürdigkeiten bewundern, Naturwunder ansehen, eine Reise planen oder die Außenseite Ihres Unternehmens zeigen.

Übersicht

Google Street View zeigt 360°-Panoramen von ausgesuchten Straßen und Gegenden auf der ganzen Welt. Die über das SDK verfügbare Abdeckung ist dieselbe wie die der Google Maps App für iOS oder https://maps.google.com/. Weitere Informationen zu Street View und den unterstützten Gebieten finden Sie unter Street View.

Das Maps SDK for iOS bietet einen Street View-Dienst zum Abrufen und Bearbeiten der Bilder, die in Google Maps Street View verwendet werden. Street View-Bilder werden als Panoramen zurückgegeben und im Street View-Viewer angezeigt. Dies ist ein Objekt vom Typ GMSPanoramaView.

Street View-Panoramen

Jedes Street View-Panorama besteht aus einem oder mehreren Bildern, die eine 360-Grad-Ansicht eines einzelnen Orts bilden. Die Bilder entsprechen der Equirektangularprojektion (Plate Carrée), die eine 360-Grad-Horizontalsicht (eine volle Drehung) und eine 180-Grad-Vertikalsicht (von ganz oben bis ganz unten) bietet. Das daraus resultierende 360°-Panorama definiert eine Projektion auf einer Kugel, wobei das Bild auf die zweidimensionale Oberfläche dieser Kugel gelegt ist.

Street View-Panoramen können mit dem Objekt GMSPanoramaView aufgerufen werden. Dieses Objekt bietet einen Betrachter, der das Panorama als Kugel rendert, wobei sich eine Kamera in der Mitte befindet. Du kannst die Ausrichtung der Kamera sowie mehrere Eigenschaften, die den Betrachter anpassen, programmatisch steuern.

Zugriff auf Street View-Daten

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 ist nicht als langfristige oder hartcodierte Referenz geeignet. panoramaID eignet sich am besten für den programmatischen Zugriff auf verschiedene Street View-Bilder.
coordinate
Der genaue Speicherort dieses Bildes als CLLocationCoordinate2D. Verwende coordinate, um einen Panoramastandort dauerhaft zu speichern oder um Nutzeraktionen auf der Karte in ein Street View-Bild zu übersetzen.

Sowohl panoramaID als auch coordinate werden als Properties des GMSPanorama-Objekts gespeichert. Sie können eine GMSPanorama aus der GMSPanoramaService über coordinate oder panoramaID anfordern. Das resultierende Objekt enthält sowohl Metadaten als auch ein Array mit Links zu nahe gelegenen Panoramen.

Standort des Panoramas festlegen

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

  • Die Methode moveNearCoordinate fordert ein Panorama in der Nähe der Koordinate an.

  • Die Methode moveNearCoordinate:radius ist ähnlich, aber Sie können hier einen Suchradius in Metern um die Koordinate angeben.

  • Mit der Methode moveNearCoordinate:source können Sie eine Quelle angeben. Eine Quelle ist nützlich, wenn Sie Street View nur auf Außenaufnahmen beschränken möchten. Standardmäßig sind Panoramen von Orten entweder drinnen oder draußen. Möglicherweise sind für den angegebenen Ort keine Außenansichten vorhanden.

  • 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. (einmalig) Führen Sie die Schritte unter Erste Schritte aus, um das SDK abzurufen, einen Schlüssel abzurufen und die erforderlichen Frameworks hinzuzufügen.
  2. Erstellen oder aktualisieren Sie ein ViewController. Wenn das Panorama angezeigt wird, sobald dieser Ansichts-Controller sichtbar wird, müssen Sie ihn mit der Methode loadView erstellen.
  3. Erstellen und instanziieren Sie eine GMSPanoramaView-Klasse mit der Methode GMSPanoramaView initWithFrame:. Wenn dies die einzige Ansicht des Ansichts-Controllers ist, kann CGRectZero als Rahmen der Karte verwendet werden. Die Größe der Karte wird dann automatisch angepasst.
  4. Legen Sie das Objekt GMSPanoramaView als Ansicht des Controllers fest, z.B. self.view = panoView;.
  5. Legen Sie den Standort des Street View-Bilds mithilfe 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
      

Betrachter anpassen

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

orientationGestures
Gibt an, ob der Nutzer die Kamera durch Tippen oder Ziehen neu ausrichten kann. Legen Sie NO fest, um Änderungen der Ausrichtung der Kamera zu deaktivieren.
zoomGestures
Gibt an, ob der Nutzer durch Auseinander- und Zusammenziehen der Finger zoomen kann. Legen Sie NO fest, um den Zoom zu deaktivieren.
navigationGestures
Gibt an, ob der Nutzer ändern kann, welches Panorama angezeigt wird. Nutzer können einmal auf Navigationslinks tippen oder doppelt auf die Ansicht tippen, um die Panoramen zu ändern. Setzen Sie diese auf NO, um Änderungen an der Navigation 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 über die Google Maps App für iOS aufgerufen werden. Du kannst die Google Maps App für iOS im Street View-Modus mit dem URL-Schema comgooglemaps starten, indem du den Parameter mapmode auf streetview setzt. Unten sehen Sie ein Beispiel für eine URL, über die Street View gestartet wird. Weitere Informationen finden Sie in der Dokumentation zum URL-Schema.

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

Street View-Standorte und -Points-of-View (POV)

Mit GMSPanoramaCamera kannst du den Blickwinkel der Street View-Kamera auf eine Kombination aus Ausrichtung, 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, jedoch nicht die Ausrichtung der Kamera für dieses Bild. Zu diesem Zweck definiert das Objekt GMSOrientation zwei Properties:

  • heading definiert den Rotationswinkel um die Kamerarichtung in Grad bezogen auf den geografischen Nordpol. Die Richtung wird im Uhrzeigersinn gemessen: Der geografische Norden ist 0, Osten 90, Süden 180 und Westen 270.
  • pitch (Standard 0) definiert die Winkelabweichung "nach oben" oder "nach unten" gegenüber dem anfänglichen Standardneigungswinkel, der häufig (aber nicht immer) flach horizontal ist. Ein Bild, das auf einem Berg aufgenommen wurde, weist beispielsweise vermutlich einen Standardneigungswinkel auf, der nicht horizontal ist. Bei einer Neigung nach oben weisen die Neigungswinkel positive Werte auf: bis zu +90 Grad bei senkrechter Neigung nach oben, im rechten Winkel zur Standardneigung. Bei einer Neigung nach unten sind die Werte negativ: bis zu -90 Grad nach unten und im rechten Winkel zur Standardneigung.

Zoom

Street View unterstützt verschiedene Bilddetailebenen mithilfe der Vergrößerung. Du kannst die Zoomstufe programmatisch festlegen oder sie durch Zusammenziehen der Finger zoomen.

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. Beim Ändern der Kameraposition können Sie die resultierende Kamerabewegung animieren. Die Animation wird zwischen den aktuellen und den neuen Kameraattributen interpoliert.

Du kannst das Objekt GMSPanoramaCamera ändern und es im Attribut camera von GMSPanoramaView festlegen. Dadurch wird die Kamera ohne Animation in den neuen Blickwinkel aufgenommen. Ein GMSCameraPosition kann erstellt werden, um eine beliebige Kombination aus Ausrichtung und Zoom zu konfigurieren.

Swift

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

Objective-C

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

Mit der Methode animateToCamera:animationDuration: von GMSPanoramaView lässt sich ein Übergang animieren. Zusätzlich können Sie die Kamera mit Core Animation steuern. Dies wird über die benutzerdefinierte CALayer auf GMSPanoramaView, GMSPanoramaLayer verfügbar gemacht.

Markierungen in Street View

Das GMSPanoramaView-Objekt kann Kartenmarkierungen anzeigen. Du kannst dasselbe GMSMarker-Objekt entweder für ein GMSMapView- oder ein GMSPanoramaView-Objekt verwenden, indem du die entsprechenden Attribute festlegst:

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 von Markierungen wird in Abhängigkeit von der Entfernung zwischen der Position der Markierung und dem Standort von GMSCameraView skaliert. Wenn dieser Abstand zu groß wird, wird die Markierung zu klein zum Anzeigen und wird ausgeblendet.

Setze das Attribut panoramaView auf nil, um es aus der GMSPanoramaView zu entfernen.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Events

Sie können Ereignisse erfassen, die im Street View-Panorama stattfinden, z. B. wenn ein Nutzer auf das Panorama tippt. Wenn Sie Ereignisse erfassen möchten, müssen Sie das GMSPanoramaViewDelegate-Protokoll implementieren. Weitere Informationen findest du im Leitfaden zu Ereignissen und in der Liste der Methoden in der GMSPanoramaViewDelegate.