Street View

Wybierz platformę: Android iOS JavaScript

Street View w Mapach Google pozwala odkrywać miejsca na całym świecie, Zdjęcia 360 stopni z poziomu ulicy. Możesz poznawać zabytki z całego świata, podziwiać przyrodnicze wybrać się w wirtualny spacer, wybrać się w podróż lub pokazać firmę z zewnątrz.

Omówienie

Google Street View umożliwia oglądanie panoramicznych zdjęć w 360° z wyznaczonych dróg na całym obszarze objętym zasięgiem. Zasięg dostępny przez pakiet SDK to tak samo jak w aplikacji Mapy Google na iOS lub https://maps.google.com/. Więcej informacji znajdziesz Street View i zobacz obsługiwane obszary na interaktywnej mapie, Informacje o Street View

Pakiet SDK Map na iOS udostępnia usługę Street View do pobierania i edytowania zdjęć używanych w Street View w Mapach Google. Zdjęcia Street View są zwracane jako panoramy i są oglądane z poziomu przeglądarki Street View. obiekt typu GMSPanoramaView.

Panoramy Street View

Każda panorama Street View to zdjęcie lub zestaw zdjęć, które zapewniają pełny widok 360° z jednego miejsca. Obrazy są dopasowane do kształtu walcowego równoodległościowego (Plate Carrée), które obejmuje widok w poziomie o zakresie 360 stopni ( pełne zawinięcie) i 180 stopni w widoku pionowym (od prosto w dół). Powstała w ten sposób panorama 360 stopni oznacza odwzorowanie. na kuli z obrazem nałożonym na tę dwuwymiarową powierzchnię. w sferze sferycznej.

Panoramy Street View można przeglądać przy użyciu obiektu GMSPanoramaView. Ten w widoku przeglądarki, która renderuje panoramę jako sferę, na środku ekranu. Możesz automatycznie kontrolować orientację kamery oraz kilku właściwości, które pozwalają dostosować przeglądarkę.

Dostęp do danych Street View

Panorama Street View jest identyfikowana za pomocą jednego z tych metadanych:

panoramaID
Unikalny identyfikator panoramy Street View. Wartość panoramaIDmoże się zmienić z czasem i nie nadaje się do długoterminowego ani zakodowanego odniesienia. panoramaID jest najlepszy do podania programowy dostęp do różnych zdjęć Street View.
coordinate
Dokładna lokalizacja tego obrazu, wyrażona jako CLLocationCoordinate2D Użyj operatora coordinate do trwałego zapisu lokalizacji panoramy lub do tłumaczenia działań użytkownika na mapę na zdjęcie Street View.

Obie wartości panoramaIDcoordinate są przechowywane jako właściwości obiektu GMSPanorama. Możesz poprosić o GMSPanorama w GMSPanoramaService za pomocą: coordinate lub panoramaID. Wygenerowany obiekt będzie zawierać zarówno metadane, jak i tablicę linków do pobliskich panoram.

Ustawianie lokalizacji panoramy

Lokalizację panoramy Street View można ustawić na podstawie koordynacja.

  • Metoda moveNearCoordinate wysyła żądanie panoramy w pobliżu koordynacja.

  • Metoda moveNearCoordinate:radius jest podobna, ale pozwala w celu określenia promienia wyszukiwania w metrach wokół współrzędnych.

  • Metoda moveNearCoordinate:source umożliwia podanie źródła. Źródło przydaje się, gdy chcesz ograniczyć widok Street View tylko do panoram, które znajdują się na zewnątrz. Domyślnie zdjęcia panoramiczne lokalizacji są wewnątrz czy na zewnątrz. Panoramy zewnętrzne mogą nie być dostępne w określoną lokalizację.

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

Wyświetlanie zdjęć Street View

Dodawanie gogli Street View

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

  1. (Tylko raz) Wykonaj czynności opisane w artykule Pierwsze kroki, aby pobrać pakiet SDK, uzyskać klucz i dodać wymagane frameworki.
  2. Utwórz lub zaktualizuj ViewController. Jeśli panorama będzie wyświetlana podczas ten kontroler widoku danych stanie się widoczny, pamiętaj, aby go utworzyć w metodę loadView.
  3. Utwórz instancję klasy GMSPanoramaView za pomocą metody GMSPanoramaView initWithFrame:. Jeśli ma być używany jako tylko w widoku kontrolera, widok CGRectZero może być używany jako ramkę, rozmiar mapy zmieni się automatycznie.
  4. Ustaw obiekt GMSPanoramaView jako widok kontrolera widoku, np. self.view = panoView;
  5. Ustaw lokalizację zdjęcia Street View, używając na przykład metody 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. Według domyślne, przesuwanie, powiększanie i podróże do sąsiednich panoram są włączone. Poszczególnymi gestami można sterować za pomocą właściwości GMSPanoramaView. Te właściwości włączają lub wyłączają gesty sterowane przez użytkownika. Programowe zmiany są nadal możliwe, gdy gest jest wyłączony.

orientationGestures
Określa, czy użytkownik będzie mógł zmienić orientację kamery, klikając lub przeciąganie. Ustaw na NO, aby wyłączyć zmianę orientacji ekranu aparat fotograficzny.
zoomGestures
Określa, czy użytkownik może ściągnąć palce, aby powiększyć. Ustaw jako NO aby wyłączyć powiększenie.
navigationGestures
Czy użytkownik może zmienić widoczną panoramę. Użytkownicy mogą jednym kliknięciem otworzyć linki nawigacyjne lub dwukrotnie kliknąć widok, aby zmienić panoramy. Ustaw opcję na NO, aby wyłączyć zmiany nawigacji.

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Uruchamianie funkcji Street View z użyciem schematu URL

Zdjęcia z Google Street View można wyświetlać w aplikacji Mapy Google na iOS. Możesz uruchomić aplikację Mapy Google na iOS na ulicy tryb wyświetlania ze schematem adresów URL comgooglemaps przez ustawienie parametru mapmode do streetview. Poniżej znajdziesz 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 w Street View

GMSPanoramaCamera umożliwia ustawienie punktu widzenia w Street View za pomocą kombinacji kierunku, tonacji 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, na którym ale nie określa orientacji kamery. W tym celu obiekt GMSOrientation definiuje 2 właściwości:

  • heading definiuje kąt obrotu wokół osi kamery w stopniach względem prawdziwego północy. Kierunki są mierzone zgodnie z kierunkiem ruchu wskazówek zegara: północ geograficzna 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 pochylenia kamery, które jest często (ale nie zawsze) poziome. (na przykład zdjęcie zrobione na wzgórzu będzie prawdopodobnie zawierać domyślny kąt nachylenia, który nie będzie poziomy). Kąty kąta są mierzone za pomocą parametru wartości dodatnich w górę (do +90 stopni prosto w górę i ortogonalne do ton domyślny), a wartości ujemne (do -90 stopni) prosto 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. Możesz ustawić poziom powiększenia automatycznie lub użytkownicy mogą zmienić go w lub ściągnąć palce, aby powiększyć.

Poruszanie aparatem

Po utworzeniu GMSPanoramaView i skonfigurowaniu lub domyślnej kamery możesz ją zmienić na kilka sposobów. Po zmianie kamery możesz animować wynikający z tego ruch kamery. animacja jest interpolowana między bieżącymi atrybutami kamery a nowym atrybutów aparatu.

Możesz zmodyfikować obiekt GMSPanoramaCamera i ustawić go w Właściwość camera użytkownika GMSPanoramaView. Spowoduje to przeniesienie kamery do nowego i z perspektywy bez animacji. Aby skonfigurować, można utworzyć GMSCameraPosition 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ę Metoda animateToCamera:animationDuration: dla GMSPanoramaView. Możesz też sterować kamerą za pomocą Core Animation. Jest on dostępny w ramach niestandardowego elementu CALayer w witrynie GMSPanoramaView, GMSPanoramaLayer.

Znaczniki w Street View

Obiekt GMSPanoramaView może wyświetlać znaczniki mapy. Za pomocą ten sam obiekt GMSMarker w GMSMapView lub GMSPanoramaView obiektu, ustawiając 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 jako funkcja odległości między pozycji i lokalizacji elementu GMSCameraView. Jeśli odległość przekroczy świetny, znacznik będzie za mały i nie będzie go widać widok.

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ń występujących na panoramie Street View, takich jak dotknij panoramy. Aby nasłuchiwać zdarzeń, musisz zaimplementować funkcję Protokół GMSPanoramaViewDelegate. Zobacz ogólne przewodnik po zdarzeniach i listę metod w witrynie GMSPanoramaViewDelegate.