Maybaygiare.org

Blog Network

Street View

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

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:

panoramaIDDie eindeutige ID eines Street View-Panoramas. DiesepanoramaIDkann sich im Laufe der Zeit ändern und eignet sich nicht als langfristige oder fest codierte Referenz. DiepanoramaIDwird am besten verwendet, um programmgesteuerten Zugriff auf verschiedene Street View-Bilder bereitzustellen.coordinateDie genaue Position dieses Bildes, ausgedrückt alsCLLocationCoordinate2D. Verwenden Sie einecoordinatezum 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:

  1. (Einmal) Befolgen Sie die Schritte unter Erste Schritte, um das SDK abzurufen, einen Schlüssel zu erhalten und die erforderlichen Frameworks hinzuzufügen.
  2. Erstellen oder aktualisieren Sie ein ViewController. Wenn das Panorama angezeigt wird, wanndieser View Controller wird sichtbar, stellen Sie sicher, dass Sie ihn mit der loadView -Methode erstellen.
  3. Erstellen und instanziieren Sie eine GMSPanoramaView -Klasse mit derGMSPanoramaViewinitWithFrame: -Methode. Wenn dies als einzige Ansicht des View Controllers verwendet werden soll, kann CGRectZero als Rahmen der Karte verwendet werden — die Größe der Karte wird automatisch geändert.
  4. Setzen Sie das GMSPanoramaView Objekt als Ansicht des View Controllers, z.self.view = panoView;.
  5. Legen Sie die Position des Street View-Bildes mit einer Methode wiemoveNearCoordinate: 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.

orientationGesturesGibt an, ob der Benutzer die Kamera durch Tippen oder Ziehen neu ausrichten kann. Setzen Sie aufNO, um Orientierungsänderungen an der Kamera zu deaktivieren.zoomGesturesGibt an, ob der Benutzer zum Zoomen kneifen kann. Setzen Sie aufNO, um den Zoom zu deaktivieren.navigationGesturesOb 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 aufNOeingestellt 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 comgooglemapsstarten, 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 (Standard 0) 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 GMSPanoramaViewerstellt 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 dieGMSPanoramaViewcamera -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 GMSPanoramaViewGMSPanoramaLayer .

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 .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.