Mit Google Maps Street View können Sie Orte auf der ganzen Welt 360-Grad-Straßenansichten Sie können Sehenswürdigkeiten auf der ganzen Welt erkunden, eine Reise zu planen oder Ihr Unternehmen von außen zu präsentieren.
Übersicht
Google Street View stellt 360°-Panoramen von verschiedenen Straßen des gesamten Street View-Abdeckungsbereichs zur Verfügung. Die über das SDK verfügbare Abdeckung ist die
wie bei der Google Maps App für iOS oder
https://maps.google.com/
Weitere Informationen
Street View und sehen Sie sich die unterstützten Gebiete auf einer interaktiven Karte an.
Über Street View
Das Maps SDK for iOS bietet einen Street View-Dienst
zum Abrufen und Bearbeiten von Bildern aus Google Maps Street View.
Street View-Bilder werden als Panoramen zurückgegeben und sind
mit der Street View-Ansicht
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. Bilder entsprechen dem Rektangular (Plattkarte) mit einer horizontalen 360-Grad-Ansicht (ein vollständige Rundumsicht) und 180-Grad-Vertikalsicht (von senkrecht bis gerade nach unten). Das resultierende 360-Grad-Panorama definiert eine Projektion. auf einer Kugel, deren Bild auf die zweidimensionale Fläche dieser Kugel.
Street View-Panoramen können mit dem GMSPanoramaView
-Objekt angesehen werden. Dieses
stellt einen Viewer bereit, der das Panorama als Kugel mit einem
Kamera in der Mitte. Sie können die Ausrichtung der
Kamera sowie verschiedene Eigenschaften, die den Viewer anpassen.
Auf Street View-Daten zugreifen
Street View-Panoramen werden durch eines von zwei Metadatenelementen bestimmt:
panoramaID
- Die eindeutige ID eines Street View-Panoramas. Dieses
panoramaID
kann sich im Laufe der Zeit ändern und ist nicht als langfristige oder hartcodierte Referenz. DerpanoramaID
eignet sich am besten, um programmatischen Zugriff auf verschiedene Street View-Bilder. coordinate
- Der genaue Standort des Bildes, ausgedrückt als
CLLocationCoordinate2D
.coordinate
verwenden für dauerhafte Speicherung eines Panoramastandorts oder zum Übersetzen von Nutzeraktionen auf in ein Street View-Bild umwandeln.
Sowohl panoramaID
als auch coordinate
werden als Attribute der
GMSPanorama
-Objekt. Du kannst eine GMSPanorama
aus dem
GMSPanoramaService
mithilfe von coordinate
oder panoramaID
. Die
Das Ergebnis-Objekt enthält beide Metadatenelemente sowie ein Array von
Links zu Panoramen in der Nähe.
Standort des Panoramas festlegen
Der Standort des Street View-Panoramas kann basierend auf dem -Koordinate.
Die Methode
moveNearCoordinate
fordert ein Panorama in der Nähe des -Koordinate.Die Methode
moveNearCoordinate:radius
ist ähnlich, ermöglicht aber können Sie einen Suchradius in Metern um die Koordinate festlegen.Mit der Methode
moveNearCoordinate:source
können Sie eine Quelle angeben. Eine Quelle ist nützlich, wenn Sie Street View so einschränken möchten, dass nur nach die sich draußen befinden. Standardmäßig sind Panoramen von Standorten entweder drinnen oder draußen. Beachten Sie, dass für den angegebenen Ort.Mit der Methode
moveNearCoordinate:radius:source
können Sie sowohl ein Radius und eine Quelle.
Street View-Bilder ansehen
Street View-Viewer hinzufügen
Um ein Anzeigeprogramm hinzuzufügen, sind folgende grundlegende Schritte auszuführen:
- (einmalig) Folgen Sie der Anleitung unter Erste Schritte, um das SDK herunterzuladen. erhalten Sie einen Schlüssel und fügen die erforderlichen Frameworks hinzu.
- Erstellen oder aktualisieren Sie eine
ViewController
. Wenn das Panorama angezeigt wird, wird dieser Ansichts-Controller sichtbar. Erstellen Sie ihn die MethodeloadView
. - Erstellen und instanziieren Sie eine
GMSPanoramaView
-Klasse mithilfe derGMSPanoramaView
initWithFrame:
-Methode. Wenn dies als Ereignis verwendet werden soll, die einzige Ansicht des Ansicht-Controllers ist, dann kannCGRectZero
als Frame : Die Größe der Karte wird automatisch angepasst. - Legen Sie das
GMSPanoramaView
-Objekt als Ansicht des Ansichts-Controllers fest, z.B.self.view = panoView;
. - Legen Sie den Standort des Street View-Bilds mithilfe einer Methode wie
moveNearCoordinate:
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
Viewer anpassen
Sie können das Anzeigeprogramm anpassen, indem Sie die verfügbaren Gesten einschränken. Von
Schwenken, Zoomen und Wechseln zu benachbarten Panoramen sind standardmäßig aktiviert.
Einzelne Touch-Gesten werden über die Eigenschaften von GMSPanoramaView
gesteuert.
Mit diesen Eigenschaften können Sie benutzergesteuerte Touch-Gesten aktivieren oder deaktivieren: programmatisch
Änderungen sind auch dann noch möglich, wenn die Touch-Geste deaktiviert ist.
orientationGestures
- Kann der Nutzer die Kamera durch Tippen oder
durch Ziehen verschieben. Auf
NO
setzen, um Änderungen der Ausrichtung des Kamera. zoomGestures
- Gibt an, ob der Nutzer durch Auseinander- und Zusammenziehen der Finger zoomen kann. Auf
NO
festlegen um das Zoomen zu deaktivieren. navigationGestures
- Gibt an, ob der Nutzer ändern kann, welches Panorama sichtbar ist. Nutzer*innen
kann durch einmaliges Tippen auf Navigationslinks oder durch Doppeltippen auf die Ansicht die Ansicht ändern
Panoramaeinstellungen: Legen Sie
NO
fest, um Navigationsänderungen zu deaktivieren.
Du kannst alle Touch-Gesten gleichzeitig aktivieren oder deaktivieren:
setAllGesturesEnabled:
-Methode.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
Street View mit dem URL-Schema starten
Google Street View-Bilder können in Google Maps für iOS angesehen werden.
. Sie können die Google Maps für iOS-App auf der
Ansichtsmodus mit dem URL-Schema comgooglemaps
durch Festlegen der mapmode
auf streetview
setzen. Beispiel für eine URL zum Starten von Street View
erscheint unten. Weitere Informationen finden Sie unter URL-Schema.
Dokumentation.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Street View-Standorte und -Perspektive
Mit GMSPanoramaCamera
kannst du den Blickwinkel von Street View festlegen
Kameraposition eine Kombination aus Ausrichtung, Neigung und Zoom.
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
Die Street View-Position definiert die Position des Kamerafokus für einen
Bilds. Sie definiert jedoch nicht die Ausrichtung der Kamera für dieses Bild.
Die Ausrichtung wird über zwei Eigenschaften des GMSOrientation
-Objekts definiert:
heading
definiert die Himmelsrichtung der Kamera in Grad relativ zum geografischen Norden. Aufnahmerichtungen werden im Uhrzeigersinn gemessen: Der geografische Norden ist 0, der Osten 90, der Süden 180 und der Westen 270.pitch
(Standard0
) definiert die Winkelvarianz „nach oben“ oder „nach unten“ aus der Standardneigung der Kamera, die häufig (aber nicht immer) flach ist horizontal. (Beispiel: Ein auf einem Hügel aufgenommenes Bild hat wahrscheinlich Standardneigung, die nicht horizontal ist.) Neigungswinkel werden mit positiven Werte nach oben (bis +90 Grad senkrecht nach oben und im rechten Standardneigung) und negative Werte nach unten (bis -90 Grad) gerade nach unten und im rechten Winkel zur Standardneigung).
Zoom
Street View unterstützt verschiedene Bilddetailebenen mithilfe der Vergrößerung. Sie können die Zoomstufe programmatisch festlegen oder Nutzer können sie in den Zoomen durch Auseinander- und Zusammenziehen der Finger.
Kamera bewegen
Sobald Sie die GMSPanoramaView
erstellt haben und diese entweder eine konfigurierte oder
Standardkamera ändern möchten, haben Sie mehrere Möglichkeiten. Wenn Sie die Einstellung
Kamerabewegung können Sie die resultierende Kamerabewegung animiert darstellen. Die
zwischen den aktuellen und dem neuen Kameraattributen interpoliert.
Kameraattributen angezeigt werden.
Sie können das GMSPanoramaCamera
-Objekt ändern und im Feld
Die camera
-Property von GMSPanoramaView
. Dadurch wird die Kamera auf das neue
ohne Animation. Ein GMSCameraPosition
kann zum Konfigurieren erstellt werden.
Ausrichtung und Zoom anpassen.
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
Methode animateToCamera:animationDuration:
von GMSPanoramaView
.
Zusätzlich können Sie die Kamera mit Core Animation steuern. Dies ist eine
verfügbar über die benutzerdefinierte CALayer
auf GMSPanoramaView
,
GMSPanoramaLayer
Markierungen in Street View
Mit dem GMSPanoramaView
-Objekt können Kartenmarkierungen angezeigt werden. Sie können die
dasselbe GMSMarker
-Objekt auf einem GMSMapView
- oder einem
GMSPanoramaView
-Objekts durch Festlegen der entsprechenden Eigenschaften:
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 hängt von der Entfernung zwischen den
und die Position von GMSCameraView
. Wenn diese Entfernung zunimmt
sehr gut, wird die Markierung zu klein zum Anzeigen und wird vor
Ansicht.
Legen Sie das Attribut panoramaView
auf nil
fest, um es aus der
GMSPanoramaView
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Ereignisse
Sie können auf Ereignisse im Street View-Panorama warten, z. B. wenn ein
der Nutzer auf das Panorama tippt. Um auf Ereignisse zu warten, müssen Sie den
GMSPanoramaViewDelegate
-Protokoll. Gesamtergebnis ansehen
einen Leitfaden zu Ereignissen und die Liste der Methoden in der
GMSPanoramaViewDelegate