Mit Google Maps Street View können Sie Orte auf der ganzen Welt durch360-Grad-Bilder auf Straßenebene erkunden. Sie können Wahrzeichen der Welt erkunden, Naturwunder anzeigen, eine Reise navigieren oder das Äußere Ihres Unternehmens zeigen.
- Übersicht
- Street View-Panoramen
- Zugriff auf Street View-Daten
- Einstellen der Position des Panoramas
- Anzeigen von Street View-Bildern
- Hinzufügen eines Street View-Viewers
- Swift
- Objective-C
- Anpassen des Viewers
- Swift
- Objective-C
- Starten von Street View mit dem URL-Schema
- Street View Standorte und Point-of-View (POV)
- Swift
- Objective-C
- Ausrichtung
- Zoom
- Bewegen der Kamera
- Swift
- Objective-C
- Markierungen in Street View
- Swift
- Objective-C
- Swift
- Objective-C
- Ereignisse
Übersicht
Google Street View bietet Panorama-360-Grad-Ansichten von ausgewiesenen Straßen im gesamten Abdeckungsbereich. Die abdeckung verfügbar durch die SDK ist thesame als, dass für die Google Maps für iOS app oderhttps://maps.google.com/
. Sie können mehr überstreet View lesen und die unterstützten Bereiche auf einer interaktiven Karte sehen, atAbout Street View.
Das Maps SDK für iOS bietet einen Street View-Dienst zum Abrufen Undmanipulieren der in Google Maps Street View verwendeten Bilder. Street View-Bilder werden als Panoramen zurückgegeben und im Street View—Viewer angezeigt – einem Objekt vom Typ GMSPanoramaView
.
Street View-Panoramen
Jedes Street View-Panorama ist ein Bild oder eine Reihe von Bildern, die eine vollständige 360-Grad-Ansicht von einem einzigen Ort aus bieten. Die Bilder entsprechen der äquirektangulären (Plate Carrée) Projektion, die 360 Grad horizontaler Ansicht (afull Wrap-around) und 180 Grad vertikaler Ansicht (von gerade nach oben bis gerade nach unten) enthält. Das resultierende 360-Grad-Panorama definiert eine Projektion auf eine Kugel, deren Bild auf die zweidimensionale Oberfläche dieser Kugel gewickelt ist.
Street View-Panoramen können mit dem GMSPanoramaView
-Objekt angezeigt werden. Dieses Objekt stellt einen Viewer bereit, der das Panorama als Kugel mit einer Kamera in der Mitte rendert. Sie können die Ausrichtung derKamera, sowie mehrere Eigenschaften, die den Viewer anpassen.
Zugriff auf Street View-Daten
Street View-Panoramen werden durch eine von zwei Meta-Daten identifiziert:
panoramaID
Die eindeutige ID eines Street View-Panoramas. DiesepanoramaID
kann sich im Laufe der Zeit ändern und eignet sich nicht als langfristige oder fest codierte Referenz. DiepanoramaID
wird am besten verwendet, um programmgesteuerten Zugriff auf verschiedene Street View-Bilder bereitzustellen.coordinate
Die genaue Position dieses Bildes, ausgedrückt alsCLLocationCoordinate2D
. Verwenden Sie einecoordinate
zum dauerhaften Speichern eines Panoramastandorts oder zum Übersetzen von Benutzeraktionen auf der Karte in ein Street View-Bild.
Sowohl die panoramaID
als auch die coordinate
werden als Eigenschaften desGMSPanorama
Objekts gespeichert. Sie können eine GMSPanorama
von derGMSPanoramaService
entweder mit der coordinate
oder panoramaID
. Das resultierende Objekt enthält sowohl Metadaten als auch eine Reihe von Links zu nahe gelegenen Panoramen.
Einstellen der Position des Panoramas
Die Position des Street View-Panoramas kann basierend auf Derkoordinate eingestellt werden.
-
Die
moveNearCoordinate
Methode fordert ein Panorama nahe Derkoordinate an. -
Die
moveNearCoordinate:radius
Methode ist ähnlich, erlaubt aberSie können einen Suchradius in Metern um die Koordinate angeben. -
Mit der
moveNearCoordinate:source
-Methode können Sie eine Quelle angeben.Eine Quelle ist nützlich, wenn Sie Street View einschränken möchten, um nur nach Panoramen zu suchen, die sich außerhalb befinden. Standardmäßig sind Panoramen von Standorten beiderinnerhalb oder außerhalb. Beachten Sie, dass Außenpanoramen für den angegebenen Standort möglicherweise nicht vorhanden sind. -
Mit der
moveNearCoordinate:radius:source
-Methode können Sie sowohl aradius als auch eine Quelle angeben.
Anzeigen von Street View-Bildern
Hinzufügen eines Street View-Viewers
Die grundlegenden Schritte zum Hinzufügen eines Viewers sind:
- (Einmal) Befolgen Sie die Schritte unter Erste Schritte, um das SDK abzurufen, einen Schlüssel zu erhalten und die erforderlichen Frameworks hinzuzufügen.
- Erstellen oder aktualisieren Sie ein
ViewController
. Wenn das Panorama angezeigt wird, wanndieser View Controller wird sichtbar, stellen Sie sicher, dass Sie ihn mit derloadView
-Methode erstellen. - Erstellen und instanziieren Sie eine
GMSPanoramaView
-Klasse mit derGMSPanoramaView
initWithFrame:
-Methode. Wenn dies als einzige Ansicht des View Controllers verwendet werden soll, kannCGRectZero
als Rahmen der Karte verwendet werden — die Größe der Karte wird automatisch geändert. - Setzen Sie das
GMSPanoramaView
Objekt als Ansicht des View Controllers, z.self.view = panoView;
. - Legen Sie die Position des Street View-Bildes mit einer Methode wie
moveNearCoordinate:
fest.
Das folgende Beispiel fügt einer App einen Street View Viewer hinzu.
Swift
import GoogleMapsclass 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 = initWithFrame:CGRectZero]; self.view = panoView; ;}@end
Anpassen des Viewers
Sie können den Viewer anpassen, indem Sie einschränken, welche Gesten verfügbar sind. Standardmäßig sind Schwenken, Zoomen und Reisen zu benachbarten Panoramen aktiviert.Einzelne Gesten werden über Eigenschaften von GMSPanoramaView
gesteuert.Diese Eigenschaften aktivieren oder deaktivieren benutzergesteuerte Gesten; programmatische Änderungen sind weiterhin möglich, wenn die Geste deaktiviert ist.
orientationGestures
Gibt an, ob der Benutzer die Kamera durch Tippen oder Ziehen neu ausrichten kann. Setzen Sie aufNO
, um Orientierungsänderungen an der Kamera zu deaktivieren.zoomGestures
Gibt an, ob der Benutzer zum Zoomen kneifen kann. Setzen Sie aufNO
, um den Zoom zu deaktivieren.navigationGestures
Ob der Benutzer ändern kann, welches Panorama sichtbar ist. Benutzer können durch einmaliges Tippen auf Navigationslinks oder durch doppeltes Tippen auf die Ansicht Panoramen ändern, die aufNO
eingestellt sind, um Navigationsänderungen zu deaktivieren.
Mit dersetAllGesturesEnabled:
-Methode können Sie alle Gesten gleichzeitig aktivieren oder deaktivieren.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
;
Starten von Street View mit dem URL-Schema
Google Street View-Bilder können in Google Maps für iOSapplication angezeigt werden. Sie können die Google Maps für iOS-Anwendung im Streetview-Modus mit dem URL-Schema comgooglemaps
starten, indem Sie den Parameter mapmode
auf streetview
. Ein Beispiel für eine URL, die Street View startet, wird unten angezeigt. Weitere Informationen finden Sie in der URL Schemedocumentation.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Street View Standorte und Point-of-View (POV)
Die GMSPanoramaCamera
ermöglicht es Ihnen, den Point-of-View der Street Viewcamera als eine Kombination aus Überschrift, Pitch und Zoom einzustellen.
Die folgenden Snippet-Sets richten die Kamera nach Süden und leicht nach unten aus.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = ;
Ausrichtung
Die Street View-Position definiert die Platzierung des Kamerafokus für animage, aber nicht die Ausrichtung der Kamera für dieses Bild.Zu diesem Zweck definiert das GMSOrientation
-Objekt zwei Eigenschaften:
-
heading
definiert den Drehwinkel um den Kameralocusin Grad relativ zum wahren Norden. Die Überschriften werden im Uhrzeigersinn gemessen: Der wahre Norden ist 0, der Osten ist 90, der Süden ist 180, der Westen ist 270. -
pitch
(Standard0
) definiert die Winkelabweichung „nach oben“ oder „nach unten“ von der ursprünglichen Standardabweichung der Kamera, die häufig (aber nicht immer) flach isthorizontal. (Beispielsweise zeigt ein auf einem Hügel aufgenommenes Bild wahrscheinlich einen nicht horizontalen Standardabstand.) Pitch winkel sind gemessen withpositive werte looking up (zu + 90 grad gerade up und orthogonal zu die standard pitch) und negative werte looking down (zu-90 gradesstraight unten und orthogonal zu die standard pitch).
Zoom
Street View unterstützt verschiedene Ebenen der Bilddetails durch die Verwendung von Zoom.Sie können die Zoomstufe programmgesteuert einstellen, oder Benutzer können die Stufe im Viewer ändern, indem Sie zum Zoomen drücken.
Bewegen der Kamera
Sobald Sie die GMSPanoramaView
erstellt haben und entweder eine konfigurierte oder eine Standardkamera haben, können Sie sie auf verschiedene Arten ändern. Wenn Sie die Kamera ändern, haben Sie die Möglichkeit, die resultierende Kamerabewegung zu animieren. Die Animation interpoliert zwischen den aktuellen Kameraattributen und den neuen Kameraattributen.
Sie können das GMSPanoramaCamera
-Objekt ändern und es auf dieGMSPanoramaView
camera
-Eigenschaft setzen. Dadurch wird die Kamera ohne Animation auf den neuen Blickwinkel verschoben. Ein GMSCameraPosition
kann erstellt werden, um jede Kombination von Ausrichtung und Zoom zu konfigurieren.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = ;
Sie können einen Übergang animieren, indem Sie dieanimateToCamera:animationDuration:
Methode von GMSPanoramaView
.Darüber hinaus können Sie die Kamera mit Core Animation steuern. Dies wird durch die benutzerdefinierte CALayer
auf GMSPanoramaView
GMSPanoramaLayer
.
Markierungen in Street View
Das GMSPanoramaView
Objekt kann Kartenmarkierungen anzeigen. Sie können das gleiche GMSMarker
-Objekt entweder für ein GMSMapView
oder einGMSPanoramaView
-Objekt verwenden, indem Sie die entsprechenden Eigenschaften festlegen:
Swift
// Create a marker at the Eiffel Towerlet position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)let marker = GMSMarker(position: position)// Add the marker to a GMSPanoramaView object named panoViewmarker.panoramaView = panoView// Add the marker to a GMSMapView object named mapViewmarker.map = mapView
Objective-C
// Create a marker at the Eiffel TowerCLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);GMSMarker *marker = ;// Add the marker to a GMSPanoramaView object named panoViewmarker.panoramaView = panoView;// Add the marker to a GMSMapView object named mapViewmarker.map = mapView;
Die Größe der Marker wird in Abhängigkeit von der Entfernung zwischen der Position des Markers und der Position von GMSCameraView
skaliert. Wenn dieser Abstand zu groß wird, wird der Marker zu klein, um angezeigt zu werden, und wird vor der Anzeige ausgeblendet.
Setzen Sie die Eigenschaft panoramaView
auf nil
, um sie aus derGMSPanoramaView
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 Benutzer auf das Panorama tippt. Um Ereignisse abzuhören, müssen Sie das ProtokollGMSPanoramaViewDelegate
implementieren. Siehe den Gesamtleitfaden zu Ereignissen und die Liste der Methoden aufGMSPanoramaViewDelegate
.