Street View

Wybierz platformę: Android iOS JavaScript

Street View w Mapach Google umożliwia odkrywanie miejsc na całym świecie dzięki zdjęciom sferycznym z poziomu ulicy. Możesz odkrywać zabytki z całego świata, podziwiać cuda natury, wyznaczać trasę podróży lub pokazywać, jak wygląda Twoja firma z zewnątrz.

Przegląd

Google Street View udostępnia widoki sferyczne (360°) z wyznaczonych dróg na całym obsługiwanym obszarze. 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 obsługiwanych obszarach znajdziesz na interaktywnej mapie w artykule Informacje o Street View.

Pakiet Maps SDK na iOS udostępnia usługę Street View, która umożliwia uzyskiwanie i modyfikowanie zdjęć używanych w Street View w Mapach Google. 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 zdjęcie lub zestaw zdjęć, które zapewniają pełny widok 360 stopni z jednej lokalizacji. Obrazy są zgodne z odwzorowaniem walcowym równoodległościowym (Plate Carrée), które obejmuje 360 stopni widoku w poziomie (pełny obrót) i 180 stopni widoku w pionie (od góry do dołu). Powstała w ten sposób panorama sferyczna definiuje rzut na sferę, a obraz jest owinięty wokół dwuwymiarowej powierzchni tej sfery.

Panoramy Street View można wyświetlać za pomocą obiektu GMSPanoramaView. Ten obiekt udostępnia przeglądarkę, która renderuje panoramę jako sferę z kamerą w środku. Możesz programowo kontrolować orientację kamery, a także kilka właściwości dostosowujących przeglądarkę.

Dostęp do danych Street View

Panoramy Street View są identyfikowane przez jeden z 2 elementów metadanych:

panoramaID
Unikalny identyfikator panoramy Street View. Ten panoramaID może się zmieniać z czasem i nie nadaje się jako długoterminowe lub zakodowane na stałe odniesienie. panoramaID najlepiej nadaje się do zapewniania dostępu programowego do różnych zdjęć Street View.
coordinate
Dokładna lokalizacja tego obrazu wyrażona jako CLLocationCoordinate2D. Użyj coordinate, aby zapewnić pamięć trwałą dla lokalizacji panoramy lub przekształcać działania użytkownika na mapie w zdjęcie Street View.

Zarówno panoramaID, jak i coordinate są przechowywane jako właściwości obiektu GMSPanorama. Możesz poprosić o GMSPanorama z GMSPanoramaService, korzystając z coordinate lub panoramaID. Wynikowy obiekt będzie zawierał oba elementy metadanych oraz tablicę linków do panoram w pobliżu.

Ustawianie lokalizacji panoramy

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

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

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

  • Metoda moveNearCoordinate:source pozwala określić źródło. Źródło jest przydatne, jeśli chcesz ograniczyć Street View do wyszukiwania tylko panoram na zewnątrz. Domyślnie panoramy lokalizacji są robione wewnątrz lub na zewnątrz. Pamiętaj, że dla określonej lokalizacji mogą nie być dostępne panoramy zewnętrzne.

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

Wyświetlanie zdjęć Street View

Dodawanie przeglądarki Street View

Podstawowe czynności związane z dodawaniem widza:

  1. (Jednorazowo) Wykonaj czynności opisane w sekcji Pierwsze kroki, aby pobrać pakiet SDK, uzyskać klucz i dodać wymagane platformy.
  2. Utwórz lub zaktualizuj ViewController. Jeśli panorama ma być wyświetlana, gdy ten kontroler widoku 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 to być jedyny widok kontrolera widoku, jako ramki mapy można użyć CGRectZero – rozmiar mapy zostanie zmieniony automatycznie.
  4. Ustaw obiekt GMSPanoramaView jako widok kontrolera widoku. Na przykład: self.view = panoView;.
  5. Ustaw lokalizację zdjęcia Street View, używając metody takiej jak moveNearCoordinate:.

Poniższy przykład pokazuje, jak dodać do aplikacji przeglądarkę Street View.

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 przechodzenie do sąsiednich panoram są włączone. Poszczególne gesty są kontrolowane przez właściwości GMSPanoramaView. Te właściwości włączają lub wyłączają gesty kontrolowane przez użytkownika. Zmiany programowe są nadal możliwe, gdy gest jest wyłączony.

orientationGestures
Określa, czy użytkownik będzie mógł zmienić orientację kamery przez kliknięcie lub przeciągnięcie. Ustaw wartość NO, aby wyłączyć zmiany orientacji kamery.
zoomGestures
Określa, czy użytkownik będzie mógł powiększać obraz przez rozciąganie. Aby wyłączyć powiększenie, ustaw wartość NO.
navigationGestures
Określa, czy użytkownik będzie mógł zmienić widoczną panoramę. Użytkownicy mogą kliknąć raz linki nawigacyjne lub kliknąć dwukrotnie widok, aby zmienić panoramy. Ustaw wartość NO, aby wyłączyć zmiany nawigacji.

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Uruchamianie Street View za pomocą schematu URI adresu 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 za pomocą schematu URI adresu URL comgooglemaps, ustawiając parametr mapmode na streetview. Poniżej znajduje się przykładowy adres URL, który uruchomi Street View. Więcej informacji znajdziesz w dokumentacji schematu URI adresu URL.

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

Lokalizacje i punkt widzenia (POV) w Street View

GMSPanoramaCamera umożliwia ustawienie punktu widzenia kamery Street View jako kombinacji kierunku, nachylenia i powiększenia.

Poniższe fragmenty kodu ustawiają kamerę na południe i lekko 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 Street View określa położenie punktu ostrości aparatu dla obrazu, ale nie określa orientacji aparatu dla tego obrazu. W tym celu obiekt GMSOrientation definiuje 2 właściwości:

  • heading określa kąt obrotu wokół położenia kamery w stopniach względem północy geograficznej. Kierunki są mierzone zgodnie z ruchem wskazówek zegara: 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ół” od początkowego domyślnego nachylenia kamery, które często (ale nie zawsze) jest poziome. (Na przykład zdjęcie zrobione na wzgórzu będzie prawdopodobnie miało domyślne nachylenie, które nie jest poziome). Kąty nachylenia są mierzone za pomocą wartości dodatnich, gdy patrzy się w górę (do +90 stopni prosto w górę i prostopadle do domyślnego nachylenia), i wartości ujemnych, gdy patrzy się w dół (do -90 stopni prosto w dół i prostopadle do domyślnego nachylenia).

Zoom

Street View obsługuje różne poziomy szczegółowości obrazu dzięki funkcji powiększenia. Poziom powiększenia możesz ustawić programowo. Użytkownicy mogą też zmieniać poziom w przeglądarce, ściskając ekran, aby powiększyć obraz.

Przesuwanie kamery

Po utworzeniu obiektu GMSPanoramaView i skonfigurowaniu lub ustawieniu domyślnej kamery możesz ją zmienić na kilka sposobów. Po zmianie kamery możesz animować jej ruch. Animacja interpoluje między bieżącymi i nowymi atrybutami kamery.

Możesz zmodyfikować obiekt GMSPanoramaCamera i ustawić go we właściwości camera obiektu GMSPanoramaView. Spowoduje to przełączenie kamery na nowy punkt 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: obiektu GMSPanoramaView. Możesz też sterować kamerą za pomocą Core Animation. Jest to możliwe dzięki niestandardowemu CALayer na GMSPanoramaView, GMSPanoramaLayer.

Znaczniki w Street View

Obiekt GMSPanoramaView może wyświetlać znaczniki mapy. Możesz użyć tego samego obiektu GMSMarker w obiekcie GMSMapView lub GMSPanoramaView, ustawiając 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ć w zależności od odległości między pozycją znacznika a lokalizacją GMSCameraView. Jeśli odległość stanie się zbyt duża, znacznik będzie zbyt mały, aby go wyświetlić, i zostanie ukryty.

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

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Wydarzenia

Możesz nasłuchiwać zdarzeń, które występują w panoramie Street View, np. gdy użytkownik kliknie panoramę. Aby nasłuchiwać zdarzeń, musisz zaimplementować protokół GMSPanoramaViewDelegate. Zapoznaj się z ogólnym przewodnikiem po zdarzeniach i listą metod na stronie GMSPanoramaViewDelegate.