Street View

Wybierz platformę: Android iOS JavaScript

Dzięki Street View w Mapach Google poznasz miejsca z całego świata dzięki zdjęciom z poziomu ulicy w technologii 360 stopni. Możesz poznawać punkty orientacyjne z całego świata, podziwiać naturalne cuda, a także korzystać z nawigacji.

Przegląd

Google Street View zapewnia panoramiczne widoki 360° z wyznaczonych dróg na całym obszarze objętym zasięgiem. Zasięg dostępny w pakiecie SDK jest taki sam jak w przypadku aplikacji Mapy Google na iOS lub https://maps.google.com/. Więcej informacji o Street View i listę obsługiwanych obszarów na interaktywnej mapie znajdziesz w artykule Street View – informacje.

Maps SDK na iOS udostępnia usługę Street View, która umożliwia uzyskiwanie i manipulowanie zdjęciami używanymi w Street View w Mapach Google. Zdjęcia Street View są zwracane jako panoramy i wyświetlane w przeglądarce Street View, czyli obiekcie typu GMSPanoramaView.

Panoramy Street View

Każda panorama Street View jest obrazem albo zestawem zdjęć, które zapewniają pełny widok 360 stopni z jednego miejsca. Obrazy są tworzone zgodnie z odwzorowaniem walcowym równoodległościowym (Plate Carrée), które obejmuje widok w poziomie obejmujący 360 stopni (pełne zawinięcie) i 180 stopni w pionie (od prostej do prostego). Powstała w ten sposób panorama 360 stopni to rzut oka na kulę z obrazem zawiniętym w jej dwuwymiarową powierzchnię.

Panoramy Street View można przeglądać przy użyciu obiektu GMSPanoramaView. W tym obiekcie możesz wyświetlić panoramę jako sferę z aparatem umieszczonym w jej środku. Możesz automatycznie kontrolować orientację kamery i kilka właściwości, by dostosować przeglądarkę.

Dostęp do danych Street View

Panoramy Street View są rozpoznawane na podstawie dwóch metadanych:

panoramaID
Unikalny identyfikator panoramy Street View. Ten obiekt panoramaID może się z czasem zmienić, dlatego nie jest odpowiedni jako długoterminowy lub zakodowany na stałe plik referencyjny. Usługa panoramaID najlepiej sprawdza się do zautomatyzowanego dostępu do różnych zdjęć Street View.
coordinate
Dokładna lokalizacja obrazu wyrażona w postaci CLLocationCoordinate2D. Używaj obiektu coordinate, aby trwale zapisywać lokalizację panoramy lub przekształcać działania użytkownika na mapie na zdjęcie Street View.

Zarówno panoramaID, jak i coordinate są przechowywane jako właściwości obiektu GMSPanorama. Możesz poprosić o GMSPanorama w GMSPanoramaService przy użyciu coordinate lub panoramaID. Otrzymany obiekt będzie zawierał zarówno fragmenty metadanych, jak i tablicę linków do pobliskich panoram.

Ustawianie lokalizacji panoramy

Lokalizację panoramy Street View można ustawić na podstawie współrzędnych.

  • Metoda moveNearCoordinate wysyła żądanie panoramy w pobliżu współrzędnych.

  • Metoda moveNearCoordinate:radius jest podobna, ale pozwala określić promień wyszukiwania w metrach wokół współrzędnych.

  • Metoda moveNearCoordinate:source umożliwia podanie źródła. Źródło jest przydatne, gdy chcesz ograniczyć widok Street View tylko do panoram znajdujących się na zewnątrz. Domyślnie panoramiczne lokalizacje są widoczne wewnątrz lub na zewnątrz. We wskazanej lokalizacji mogą nie być dostępne panoramy na zewnątrz.

  • Metoda moveNearCoordinate:radius:source umożliwia określenie zarówno promienia, jak i źródła.

Wyświetlanie zdjęć Street View

Dodawanie gogli Street View

Podstawowe czynności, które należy wykonać, aby dodać przeglądającego:

  1. (Raz) Wykonaj czynności opisane w artykule Pierwsze kroki, aby pobrać pakiet SDK, uzyskać klucz i dodać wymagane platformy.
  2. Utwórz lub zaktualizuj ViewController. Jeśli panorama będzie wyświetlana, gdy ten kontroler widoku danych stanie się widoczny, utwórz ją w metodzie loadView.
  3. Utwórz i utwórz instancję klasy GMSPanoramaView za pomocą metody GMSPanoramaView initWithFrame:. Jeśli ma być on używany jako jedyny widok kontrolera widoku, jako ramka mapy można użyć elementu CGRectZero, a rozmiar mapy zostanie automatycznie zmieniony.
  4. Ustaw obiekt GMSPanoramaView jako widok kontrolera widoku, np. self.view = panoView;.
  5. Ustaw lokalizację zdjęcia Street View, np. moveNearCoordinate:.

Poniższy przykład pokazuje dodanie gogli Street View do aplikacji.

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
      

Dostosowywanie przeglądarki

Możesz dostosować przeglądarkę, ograniczając dostępne gesty. Domyślnie przesuwanie, powiększanie i podróże do sąsiednich panoram są domyślnie włączone. Poszczególnymi gestami można sterować za pomocą właściwości GMSPanoramaView. Te właściwości pozwalają włączyć lub wyłączyć gesty kontrolowane przez użytkownika. Gdy gesty są wyłączone, można wprowadzać automatyczne zmiany.

orientationGestures
Określa, czy użytkownik może zmienić orientację kamery, klikając ją lub przeciągając. Ustaw wartość NO, aby wyłączyć zmiany orientacji kamery.
zoomGestures
Określa, czy użytkownik może ściągnąć palce, aby powiększyć obraz. Aby wyłączyć powiększenie, ustaw wartość NO.
navigationGestures
Czy użytkownik może zmienić widoczną panoramę. Użytkownicy mogą dotykać linków nawigacyjnych jednym kliknięciem lub kliknąć dwukrotnie widok, aby zmienić panoramy Ustaw na NO i wyłączyć zmiany w nawigacji.

Możesz włączyć lub wyłączyć wszystkie gesty jednocześnie, używając metody setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Uruchamianie funkcji Street View z użyciem schematu URL

Zdjęcia Google Street View są dostępne w aplikacji Mapy Google na iOS. Możesz uruchomić aplikację Mapy Google na iOS w trybie widoku ulicy za pomocą schematu adresu URL comgooglemaps, ustawiając parametr mapmode na streetview. Poniżej znajdziesz przykład adresu URL, który uruchomi Street View. Więcej informacji znajdziesz w dokumentacji schematu adresów URL.

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

Lokalizacje i punkty widzenia w Street View

GMSPanoramaCamera umożliwia ustawienie punktu widzenia kamery Street View na połączenie kierunku, nachylenia i powiększenia.

Poniższe zestawy fragmentów kodu spowodują ustawienie kamery na południe i nieco w dół.

Swift

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

Objective-C

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

Orientacja

Lokalizacja w Street View określa, gdzie znajduje się ostrość aparatu, ale nie określa orientacji aparatu. W tym celu obiekt GMSOrientation definiuje 2 właściwości:

  • heading określa kąt obrotu wokół lokalizacji kamery w stopniach względem rzeczywistej północy. Nagłówki są mierzone w prawo: rzeczywista północ to 0, wschód to 90, południe to 180, a zachód to 270.
  • pitch (domyślnie 0) określa odchylenie kąta „w górę” lub „w dół” względem początkowego domyślnego nachylenia kamery, które często (ale nie zawsze) jest płaskie w poziomie. (Na przykład zdjęcie wykonane na wzgórzu prawdopodobnie będzie mieć domyślne odchylenie nie poziome). Kąty tonu są mierzone przy użyciu wartości dodatnich (w górę +90 stopni prosto w górę i ortogonalnie w górę do domyślnego kąta), a ujemnych w dół (do -90 stopni w dół i ortogonalnie do domyślnego tonacji).

Zoom

Street View umożliwia uzyskanie różnych poziomów szczegółowości obrazu dzięki powiększeniu. Poziom powiększenia można ustawić automatycznie lub użytkownicy mogą zmienić go w przeglądarce przez ściągnięcie palców.

Poruszanie aparatem

Gdy utworzysz GMSPanoramaView i masz już skonfigurowaną lub domyślną kamerę, możesz ją zmienić na kilka sposobów. Po zmianie kamery możesz animować jej ruch. Animacja interpoluje między bieżącymi atrybutami kamery a nowymi atrybutami kamery.

Możesz zmodyfikować obiekt GMSPanoramaCamera i ustawić go we właściwości camera GMSPanoramaView. Dzięki temu kamera zostanie ustawiona do nowego punktu widzenia bez animacji. Można utworzyć GMSCameraPosition, aby skonfigurować dowolną kombinację orientacji i powiększenia.

Swift

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

Objective-C

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

Możesz animować przejście, wywołując metodę animateToCamera:animationDuration: GMSPanoramaView. Możesz też sterować kamerą za pomocą Core Animation. Ta funkcja jest dostępna w niestandardowym CALayer GMSPanoramaView GMSPanoramaLayer.

Znaczniki w Street View

Obiekt GMSPanoramaView może wyświetlać znaczniki mapy. Aby użyć tego samego obiektu GMSMarker w obiekcie GMSMapView lub GMSPanoramaView, ustaw jego odpowiednie właściwości:

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;
      

Rozmiar znaczników będzie się zmieniać zależnie od odległości między pozycją znacznika a lokalizacją elementu GMSCameraView. Jeśli odległość będzie zbyt duża, znacznik stanie się zbyt mały i nie będzie widoczny.

Ustaw właściwość panoramaView na nil, aby usunąć ją z narzędzia GMSPanoramaView.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Wydarzenia

Możesz nasłuchiwać zdarzeń występujących na panoramie Street View, np. kliknięcia jej przez użytkownika. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSPanoramaViewDelegate. Zapoznaj się z ogólnym przewodnikiem po zdarzeniach i listą metod w GMSPanoramaViewDelegate.