Street View

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wybierz platformę: Android iOS JavaScript

Dzięki Street View w Mapach Google możesz odkrywać miejsca na całym świecie, korzystając ze zdjęć sferycznych na poziomie ulicy. Możesz zwiedzać światowe punkty orientacyjne, oglądać cuda natury, podróżować lub prezentować swoją firmę z zewnątrz.

Omówienie

Google Street View rozciąga się z wyznaczonych ulic w panoramicznym widoku 360°. Pokrycie dostępne w pakiecie SDK jest takie samo jak w aplikacji Mapy Google na iOS lub https://maps.google.com/. Aby dowiedzieć się więcej o widoku Street View i zobaczyć obsługiwane obszary na interaktywnej mapie, zapoznaj się z sekcją Informacje o Street View.

Pakiet SDK Map na iOS oferuje usługę Street View do pobierania zdjęć i manipulowania nimi w Street View. Zdjęcia Street View są zwracane jako panoramy i wyświetlane w przeglądarce Street View – obiekcie typu GMSPanoramaView.

Panoramy Street View

Każda panorama Street View to obraz lub zbiór zdjęć, które zapewniają pełny widok 360 stopni z jednego miejsca. Obrazy są zgodne z odwzorowaniem walcowym równoodległościowym (Plate Carrée), który obejmuje 360 stopni w poziomie (pełny, obrócony) oraz 180 stopni w pionie (od prawej do najniższej). Otrzymana panorama 360° definiuje odwzorowanie kuli złożoną z obrazu opakowanego do dwuwymiarowej powierzchni tej kuli.

Panoramy w Street View można zobaczyć w obiekcie GMSPanoramaView. Ten obiekt dostarcza widza, który renderuje panoramę jako sferę, a w jej środku widać kamerę. Możesz automatycznie zmieniać orientację kamery i kilka właściwości dostosowujących przeglądarkę.

Dostęp do danych Street View

Panoramy w Street View są identyfikowane przez jeden z dwóch rodzajów metadanych:

panoramaID
Unikalny identyfikator panoramy Street View. Ten atrybut panoramaID może się z czasem zmienić i nie może być długoterminowy ani zakodowany na stałe. Parametr panoramaID najlepiej nadaje się do automatycznego udostępniania różnych zdjęć Street View.
coordinate
Dokładna lokalizacja tego obrazu wyrażona jako CLLocationCoordinate2D. Używaj coordinate do trwałego przechowywania lokalizacji panoramy lub do przekształcania działań użytkowników na mapie w zdjęcie Street View.

Zarówno panoramaID, jak i coordinate są przechowywane jako właściwości obiektu GMSPanorama. Możesz zażądać GMSPanorama od GMSPanoramaService za pomocą coordinate lub panoramaID. Powstały w ten sposób obiekt będzie zawierał zarówno metadane, jak i szereg linków do pobliskich widoków panoramicznych.

Ustawianie lokalizacji panoramy

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

  • Metoda moveNearCoordinate żąda wykonania panoramy w pobliżu współrzędnej.

  • Metoda moveNearCoordinate:radius jest podobna, ale umożliwia określenie promienia wyszukiwania w metrach wokół współrzędnej.

  • Metoda moveNearCoordinate:source pozwala określić źródło. Źródło jest przydatne, jeśli chcesz ograniczyć widok Street View tylko do zdjęć pochodzących z zewnątrz. Domyślnie zdjęcia lokalizacji znajdują się wewnątrz lub na zewnątrz. Należy pamiętać, że w przypadku podanej lokalizacji panoramy zewnętrzne mogą nie być dostępne.

  • Metoda moveNearCoordinate:radius:source pozwala określić zarówno promień, jak i źródło.

Wyświetlanie zdjęć Street View

Dodawanie widoku Street View

Podstawowe czynności przy dodawaniu widza:

  1. (Raz) Wykonaj czynności opisane w artykule Pierwsze kroki, by pobrać pakiet SDK, uzyskaj klucz i dodaj wymagane platformy.
  2. Utwórz lub zaktualizuj element ViewController. Jeśli panorama pojawi się, gdy kontroler widoku stanie się widoczny, pamiętaj, aby utworzyć go w metodzie loadView.
  3. Utwórz i utwórz instancję klasy GMSPanoramaView przy użyciu metody GMSPanoramaView initWithFrame:. Jeśli ma być używany jako jedyny widok kontrolera, jako ramkę mapy można użyć CGRectZero – rozmiar mapy zmieni się automatycznie.
  4. Ustaw obiekt GMSPanoramaView jako widok kontrolera danych, np. self.view = panoView;.
  5. Ustaw lokalizację zdjęcia w Street View, korzystając z metody takiej jak moveNearCoordinate:.

Poniższy przykład dodaje przeglądarkę 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 w przeglądarce

Możesz dostosować przeglądarkę przez ograniczenie dostępnych gestów. Domyślnie włączone są przesuwanie, powiększanie i przybliżanie do sąsiednich. Poszczególne gesty są kontrolowane za pomocą właściwości GMSPanoramaView. Te właściwości włączają lub wyłączają gesty kontrolowane przez użytkownika. Po wyłączeniu gestu nadal można wprowadzać zmiany automatyczne.

orientationGestures
Określ, czy użytkownik będzie mógł zmienić orientację kamery przez kliknięcie lub przeciągnięcie. Aby wyłączyć zmianę orientacji kamery, ustaw tę wartość na NO.
zoomGestures
Użytkownik może powiększyć widok, aby go powiększyć. Aby wyłączyć powiększenie, ustaw NO.
navigationGestures
czy użytkownik może zmienić widoczną panoramę. Użytkownicy mogą kliknąć jeden link na linkach nawigacyjnych lub kliknąć dwukrotnie widok, żeby zmienić panoramę. Aby wyłączyć zmiany, kliknij NO.

Możesz włączyć lub wyłączyć wszystkie gesty za pomocą metody setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Uruchamianie Street View z użyciem schematu adresów URL

Zdjęcia Google Street View można wyświetlać w aplikacji Mapy Google na iOS. Możesz uruchomić aplikację Mapy Google na iOS w trybie Street View ze schematem comgooglemaps adresu URL, ustawiając parametr mapmode na streetview. Poniżej znajduje się przykład adresu URL, który uruchamia Street View. Więcej informacji znajdziesz w dokumentacji schematu URL.

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

Lokalizacje i punkty widzenia Street View

GMSPanoramaCamera umożliwia ustawienie punktu widzenia kamery w Street View jako połączenie nagłówka, kąta oraz powiększenia.

Poniższe zestawy fragmentów kodu pozwolą ustawić aparat na południe i lekko na 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 położenie ostrości kamery w przypadku danego zdjęcia, ale nie określa orientacji aparatu. W tym celu obiekt GMSOrientation definiuje 2 właściwości:

  • heading określa kąt obrotu kamery w 3 stopniach względem względem prawdziwej północy. Nagłówki są mierzone w prawo: północ to 0, wschód to 90, południe to 180, a zachód to 270.
  • pitch (domyślna 0) określa wariancję kąta w górę lub w dół względem początkowego nachylenia domyślnego, który często (ale nie zawsze) jest płaski. (Na przykład zdjęcie zrobione na wzgórzu prawdopodobnie pokazuje domyślny kąt, który nie jest poziomy). Kąt nachylenia można zmierzyć przy zastosowaniu dodatnich wartości (do +90 stopni w górę i w poziomie pionowym) oraz wartości ujemnych (do -90 stopni od dołu do góry i do wysokości domyślnej).

Szersza

Street View obsługuje różne poziomy szczegółów zdjęcia dzięki powiększeniu. Możesz ustawić poziom powiększenia automatycznie, a użytkownicy mogą zmienić poziom w przeglądarce, ściągając i powiększając widok.

Przenoszenie kamery

Gdy utworzysz GMSPanoramaView i będziesz mieć skonfigurowaną lub domyślną kamerę, możesz ją zmienić na jeden z kilku sposobów. Po zmianie kamery możesz włączyć animację ruchu kamery. Animacja łączy się między bieżącymi atrybutami kamery i nowymi atrybutami.

Możesz zmienić obiekt GMSPanoramaCamera i ustawić go na właściwości camera w GMSPanoramaView. Spowoduje to przyciąganie aparatu do nowego punktu widzenia bez animacji. GMSCameraPosition można utworzyć, 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: metody GMSPanoramaView. Możesz też sterować kamerą za pomocą animacji Core. Ta opcja jest dostępna w niestandardowym narzędziu CALayer w dniu 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 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;
      

Znaczniki będą skalowane na podstawie rozmiaru odległości między położeniem znacznika a miejscem GMSCameraView. Jeśli odległość będzie zbyt duża, znacznik stanie się za mały i nie będzie go widać.

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

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Zdarzenia

Możesz odsłuchiwać zdarzenia, które występują w ramach widoku Street View, np. kliknięcie przez użytkownika panoramy. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSPanoramaViewDelegate. Zobacz ogólny przewodnik po zdarzeniach oraz listę metod na GMSPanoramaViewDelegate.