Es kann losgehen!

Bevor Sie mit der Entwicklung beginnen, lesen Sie bitte unsere Entwicklerdokumentation.

Das Google Maps SDK for iOS aktivieren

Zum Einstieg führen wir Sie durch die Google Developers Console, wo Sie vorab Folgendes tun müssen:

  1. Ein Projekt erstellen oder auswählen
  2. Das Google Maps SDK for iOS aktivieren
  3. Zugehörige Schlüssel erstellen
Weiter

Street View

Mit Google Maps Street View können Sie weltweit Orte aus der 360-Grad-Straßenperspektive erkunden. Sie können Sehenswürdigkeiten und landschaftliche Attraktionen betrachten, entlang einer Strecke navigieren oder die Außenansicht Ihrer Firma zeigen.

Übersicht

Google Street View stellt 360°-Panoramaansichten von ausgewählten Straßen des gesamten Street View-Abdeckungsbereichs zur Verfügung. Die über das SDK verfügbare Abdeckung entspricht der für die Google Maps for iOS App oder https://maps.google.com/. Unter Kurzinfo zu Street View erhalten Sie weitere Informationen über Street View und können sich die unterstützten Regionen auf einer interaktiven Karte ansehen.

Das Google Maps SDK for iOS bietet einen Street View-Dienst zum Beziehen und Bearbeiten der in Google Maps Street View verwendeten Bilder. Street View-Bilder werden als Panoramaaufnahmen wiedergegeben und aus dem Street View-Anzeigeprogramm — betrachtet, einem Objekt vom Typ GMSPanoramaView.

Street View-Panoramen

Jedes Street View-Panorama besteht aus einem oder mehreren Bildern, die eine 360-Grad-Ansicht von einem Standpunkt aus bilden. Die Bilder entsprechen der Rektangularprojektion (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-Grad-Panorama definiert eine Projektion auf einer Kugel, über deren zweidimensionale Fläche das Bild gelegt wird.

Street View-Panoramen können mit dem Objekt GMSPanoramaView betrachtet werden. Dieses Objekt bietet ein Anzeigeprogramm, mit dem das Panorama als Kugel mit einer Kamera in ihrem Mittelpunkt wiedergegeben wird. Die Ausrichtung der Kamera sowie einige Eigenschaften zur benutzerdefinierten Anpassung des Anzeigeprogramms können Sie programmtechnisch 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 Änderungen unterliegen und eignet sich nicht als langfristiger, hartcodierter Verweis. Am besten eignet sich die panoramaID, um programmgesteuerten Zugriff auf verschiedene Street View-Bilder zu erteilen. Hinweis: Panoramen von Innenräumen und Photo Sphere-Panoramen werden derzeit nicht unterstützt.
coordinate
Der präzise Standort dieses Bildes, ausgedrückt als CLLocationCoordinate2D. Verwenden Sie coordinate zum dauerhaften Speichern des Panoramastandorts oder zum Übersetzen von Benutzeraktionen auf der Karte in Street View-Bilder.

Sowohl panoramaID als auch coordinate werden als Eigenschaften des Objekts GMSPanorama gespeichert. Um ein GMSPanorama beim GMSPanoramaService anzufordern, können Sie coordinate oder panoramaID verwenden. Das resultierende Objekt umfasst beide Metadatenelemente sowie ein Array mit Links zu Panoramen in der Nähe.

Street View-Bilder anzeigen

Ein Street View-Anzeigeprogramm hinzufügen

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

  1. (Einmalig) Befolgen Sie die Anweisungen unter Erste Schritte, um das SDK und einen Schlüssel zu erhalten und die erforderlichen Frameworks hinzuzufügen.
  2. Erstellen oder aktualisieren Sie einen ViewController. Wird das Panorama angezeigt, wenn dieser Ansichtscontroller sichtbar wird, achten Sie darauf, ihn innerhalb der Methode loadView zu erstellen.
  3. Erstellen und instanziieren Sie eine Klasse GMSPanoramaView mithilfe der Methode GMSPanoramaView initWithFrame:. Soll dies als einzige Ansicht des Ansichtcontrollers verwendet werden, dann kann CGRectZero als Kartenrahmen verwendet werden— die Größe der Karte wird dann automatisch angepasst.
  4. Legen Sie das Objekt GMSPanoramaView als Ansicht des Ansichtcontrollers fest, z. B. self.view = panoView;.
  5. Legen Sie die Position 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 UIKit
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}

Objective-C

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

- (void)loadView {
    GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
    self.view = panoView;

    [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}
@end

Das Anzeigeprogramm anpassen

Sie können das Anzeigeprogramm anpassen, indem Sie die verfügbaren Gesten einschränken. Standardmäßig sind sowohl Schwenken, Vergrößern und Verkleinern als auch das Wechseln zu benachbarten Panoramen aktiviert. Die einzelnen Gesten werden durch Eigenschaften von GMSPanoramaView gesteuert. Diese Eigenschaften aktivieren oder deaktivieren benutzergesteuerte Gesten; programmgesteuerte Änderungen sind auch nach dem Deaktivieren der Geste weiterhin möglich.

orientationGestures
Bestimmt, ob der Benutzer in der Lage sein soll, die Kamera durch Tippen oder Ziehen neu auszurichten. Auf NO festgelegt, um Ausrichtungswechsel der Kamera zu deaktivieren.
zoomGestures
Bestimmt, ob Zusammendrücken zum Vergrößern für den Benutzer möglich ist. Auf NO festgelegt, um das Vergrößern zu deaktivieren.
navigationGestures
Bestimmt, ob der Wechsel zu einem anderen Panorama für den Benutzer möglich ist. Benutzer können durch einfaches Tippen auf Navigationslinks oder durch Doppeltippen auf die Ansicht zu einer anderen Panoramaansicht wechseln. Auf NO festgelegt, um Navigationsänderungen zu deaktivieren.

Mit der Methode setAllGesturesEnabled: können Sie alle Gesten zugleich aktivieren bzw. deaktivieren.

[panoView_ setAllGesturesEnabled:NO];

Street View mit dem URL-Schema starten

Google Street View-Bilder können aus der Google Maps for iOS App angezeigt werden. Sie können die Google Maps for iOS App mit dem URL-Schema comgooglemaps im Modus „Street View“ starten, indem Sie den Parameter mapmode auf streetview festlegen. Im Folgenden finden Sie eine Beispiel-URL, mit der Street View gestartet wird. Weitere Informationen dazu finden Sie in der Dokumentation zum URL-Schema .

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

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

Mit GMSPanoramaCamera können Sie den Point-of-View der Street View-Kamera als Kombination aus Ausrichtung, Neigungswinkel und Vergrößerung festlegen.

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

Swift

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

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView_.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                  pitch:-10
                                                   zoom:1];

Ausrichtung

Mit dem Street View-Standort ist die Position des Kamerafokus für ein Bild definiert, jedoch nicht die Ausrichtung der Kamera für dieses Bild. Zu diesem Zweck werden mit dem Objekt GMSOrientationzwei Eigenschaften definiert:

  • Mit heading wird der Rotationswinkel um den geometrischen Kameraort in Grad relativ vom geografischen Norden aus definiert. Aufnahmerichtungen werden im Uhrzeigersinn gemessen: Der geografische Norden ist 0, Osten 90, Süden 180 und Westen 270.
  • Mit pitch (Standardwert 0) wird die Abweichung „nach oben“ oder „nach unten“ vom Standardneigungswinkel der Kamera aus gemessen, der häufig (aber nicht immer) flach horizontal ist. Beispielsweise wird ein Bild, das auf einem Berg aufgenommen wurde, vermutlich einen Neigungswinkel haben, der nicht horizontal ist. Neigungswinkel werden mit positiven Werten nach oben gemessen (bis +90 Grad: senkrecht nach oben und im rechten Winkel zum Standardneigungswinkel) und mit negativen Werten nach unten (bis -90 Grad: senkrecht nach unten und im rechten Winkel zum Standardneigungswinkel).

Zoom

Street View unterstützt verschiedene Bilddetailebenen mithilfe der Vergrößerung. Die Vergrößerungsstufe kann von Ihnen programmgesteuert festgelegt oder von Benutzern im Anzeigeprogramm durch Zusammendrücken geändert werden.

Kamera bewegen

Nachdem Sie die GMSPanoramaView mit einer konfigurierten oder einer Standard-Kamera erstellt haben, können Sie nun auf verschiedene Weise Änderungen vornehmen. Wenn Sie die Kameraposition verändern, können Sie die daraus resultierende Kamerabewegung animieren. Die Animation interpoliert zwischen den aktuellen und den neuen Kameraattributen.

Sie können das Objekt GMSPanoramaCamera ändern und es in der GMSPanoramaView-Eigenschaft camera festlegen. Dadurch wird die Kamera ohne Animation zum neuen Point-of-View bewegt. Um eine Kombination aus Ausrichtung und Vergrößerung festzulegen, kann eine GMSCameraPosition erstellt werden.

Swift

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

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];

Sie können den Übergang animieren, indem Sie die Methode animateToCamera:animationDuration: von GMSPanoramaView aufrufen. Zusätzlich können Sie die Kamera mit Core Animation steuern. Dies wird durch die benutzerdefinierte CALayer-Ebene in GMSPanoramaView , GMSPanoramaLayer, ermöglicht.

Marker in Street View

Das Objekt GMSPanoramaView kann Kartenmarker anzeigen. Sie können dasselbe Objekt GMSMarker entweder im Objekt GMSMapView oder GMSPanoramaView verwenden, indem Sie die entsprechenden Eigenschaften 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 Marker werden in der Größe als Funktion der Entfernung zwischen der Position des Markers und des Standorts von GMSCameraView skaliert. Wird die Entfernung zu groß, so ist der Marker zu klein, um angezeigt zu werden, und wird versteckt.

Hinweis: Nicht alle Markerfunktionen sind mit GMSPanoramaView verfügbar.

Legen Sie die Eigenschaft panoramaView auf nil fest, um sie aus GMSPanoramaView zu entfernen.

Swift

marker.panoramaView = nil

Objective-C

marker.panoramaView = nil;

Ereignisse

Sie können auf Ereignisse warten, die im Street View-Panorama auftreten, z. B. wenn ein Benutzer auf das Panorama tippt. Dazu müssen Sie das Protokoll GMSPanoramaViewDelegate implementieren. Weitere Informationen dazu erhalten Sie im allgemeinen Leitfaden Ereignisse und in der Liste mit Methoden im GMSPanoramaViewDelegate.

Feedback geben zu...

Google Maps SDK for iOS
Google Maps SDK for iOS