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 funkcji Street View w Mapach Google możesz odkrywać miejsca na całym świecie dzięki zdjęciom z poziomu ulicy. Możesz poznawać zabytki świata, oglądać cuda natury, podróżować po okolicy lub prezentować wnętrze swojej firmy z zewnątrz.

Przegląd

Google Street View udostępnia panoramiczne widoki z wyznaczonych dróg w całej okolicy. Pokrycie jest dostępne tak samo jak w aplikacji Mapy Google na iOS i w https://maps.google.com/. Więcej informacji o Street View i obsługiwanych obszarach znajdziesz na interaktywnej mapie w Street View.

Maps SDK na iOS udostępnia usługę Street View do pobierania zdjęć i manipulowania nimi w Street View. Zdjęcia Street View są zwracane jako widoki panoramiczne, a także wyświetlane z poziomu przeglądarki Street View – obiektu typu GMSPanoramaView.

Panoramy Street View

Każda panorama Street View to zdjęcie (lub zbiór zdjęć), które zapewnia pełny widok 360 stopni z jednego miejsca. Obrazy są zgodne z odwzorowaniem walcowym równoodległościowym (Plate Carrée), które obejmuje 360 stopni w poziomie (w całości) i 180 stopni w pionie (od prawej do dołu). Powstała panorama 360° definiuje projekcję na sferze z obrazem zwiniętym do dwuwymiarowej powierzchni tej kuli.

Panoramy Street View można zobaczyć w obiekcie GMSPanoramaView. Ten obiekt udostępnia widza, który wyrenderuje panoramę jako kulę, z aparatem w środku. Możesz automatycznie kontrolować orientację kamery oraz kilka właściwości, które dostosowują przegląd.

Dostęp do danych Street View

Panoramy Street View są identyfikowane na podstawie jednego z dwóch elementów metadanych:

panoramaID
Unikalny identyfikator panorama Street View. Ta właściwość panoramaID może się zmieniać i nie jest odpowiednia jako długoterminowa ani zakodowana na stałe. Metoda panoramaID najlepiej nadaje się do automatycznego udostępniania różnych zdjęć Street View.
coordinate
Dokładna lokalizacja tego obrazu wyrażona w polu CLLocationCoordinate2D. Właściwość coordinate służy do trwałego przechowywania lokalizacji panoramicznej lub przekształcania działań 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 wysłać żądanie GMSPanorama z GMSPanoramaService za pomocą coordinate lub panoramaID. Powstały w ten sposób obiekt zawiera zarówno metadane, jak i linki do pobliskich widoków.

Ustawianie lokalizacji panoramicznej

Możesz ustawić lokalizację widoku Street View na podstawie współrzędnych.

  • Metoda moveNearCoordinate prosi o panorama w pobliżu współrzędnych.

  • Metoda moveNearCoordinate:radius jest podobna, ale umożliwia określenie promienia 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ć widok Street View tylko do lokalizacji Panoramy. Domyślnie widoki lokalizacji znajdują się wewnątrz lub na zewnątrz. Pamiętaj, że w przypadku określonej lokalizacji mogą nie istnieć widoki zewnętrzne.

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

Wyświetlanie zdjęć Street View

Dodawanie widoku Street View

Czynności, które musisz wykonać, aby dodać widza:

  1. (Raz) Wykonaj czynności opisane w artykule Pierwsze kroki, aby uzyskać 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 będzie widoczny, utwórz go w metodzie loadView.
  3. Utwórz klasę GMSPanoramaView i utwórz ją, korzystając z metody GMSPanoramaView initWithFrame:. Jeśli ma to być jedyny widok kontrolera widoku danych, CGRectZero może być używany jako ramka mapy – rozmiar mapy zostanie automatycznie zmieniony.
  4. Ustaw obiekt GMSPanoramaView jako widok kontrolera widoku danych, np. self.view = panoView;.
  5. Określ lokalizację zdjęcia w Street View za pomocą takiej metody 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 widza

Możesz dostosować widok przez ograniczenie dostępnych gestów. Domyślnie włączone są usługi przesuwania, powiększania i podróży do sąsiednich widoków. Poszczególne gesty są kontrolowane za pomocą właściwości GMSPanoramaView. Te właściwości umożliwiają włączanie i wyłączanie gestów sterowanych przez użytkownika. Zautomatyzowane zmiany są możliwe nawet wtedy, gdy gest jest wyłączony.

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 aparatu, ustaw wartość NO.
zoomGestures
czy użytkownik będzie mógł powiększyć widok, Aby wyłączyć powiększenie, ustaw NO.
navigationGestures
Określ, czy użytkownik będzie mógł zmienić wyświetlaną panoramę. Użytkownicy mogą klikać linki nawigacyjne jednym kliknięciem, lub zmieniać widok, wybierając opcję NO, aby wyłączyć zmiany w nawigacji.

Aby włączyć lub wyłączyć wszystkie gesty jednocześnie, użyj metody setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Uruchamianie Street View ze schematem adresu URL

Zdjęcia Google Street View można wyświetlać w aplikacji Mapy Google na iOS. Aplikację Mapy Google na iOS możesz uruchomić w trybie Street View ze schematem URL comgooglemaps, ustawiając parametr mapmode na wartość streetview. Poniżej znajdziesz przykładowy URL do uruchamiania Street View. Więcej informacji znajdziesz w dokumentacji schematu URL.

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

Lokalizacje Street View i punkt widzenia

Element GMSPanoramaCamera umożliwia ustawienie punktu widzenia kamery w Street View jako kombinacji nagłówka, tonacji i powiększenia.

Wymienione poniżej zestawy statusów mają orientację względem południa 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 ostrości kamery, ale nie określa jej orientacji. W tym celu obiekt GMSOrientation definiuje 2 właściwości:

  • heading określa kąt obrotu wokół wierzchołka kamery w stosunku do prawdziwej północy. Nagłówki są mierzone w prawo: północna to 0, wschód to 90, południe to 180,
  • pitch (domyślnie 0) określa wariancję kąta „w górę” lub „w dół” od domyślnego domyślnego ustawienia kamery, które często jest (ale nie zawsze) płasko w poziomie. Na przykład zdjęcie zrobione na wzgórzu będzie zaprezentować domyślną wartość, która nie jest pozioma. Kąt nachylenia jest mierzony z użyciem wartości dodatnich (do +90 stopni w górę i ortogonach do wartości domyślnej) i ujemnych (do -90 stopni w kierunku od dołu do wysokości domyślnej).

Szersza

Street View obsługuje różne poziomy szczegółów zdjęcia dzięki powiększeniu. Poziom powiększenia możesz ustawić automatycznie, a użytkownicy mogą zmienić go, ściągając palce na ekranie.

Przenoszenie kamery

Gdy utworzysz obiekt GMSPanoramaView, który ma już skonfigurowaną lub domyślną kamerę, możesz ją zmienić na kilka sposobów. Po zmianie kamery możesz wprowadzić animację jej ruchu. Animacja łączy się między bieżącymi atrybutami kamery i nowymi.

Możesz zmodyfikować obiekt GMSPanoramaCamera i ustawić go we właściwości GMSPanoramaView obiektu camera. Pozwoli to przygotować nowy punkt widzenia kamery 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: metodą GMSPanoramaView. Kamera umożliwia również sterowanie kamerą. Ta opcja jest dostępna w niestandardowym formacie 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 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;
      

Znaczniki będą się skalować w formie funkcji odległości między pozycją znacznika a lokalizacją elementu GMSCameraView. Jeśli odległość będzie zbyt duża, znacznik stanie się za mały, by można go było wyświetlić.

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

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Zdarzenia

Możesz nasłuchiwać zdarzeń, które pojawiają się w panoramach Street View, np. gdy użytkownik kliknie miniaturę. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSPanoramaViewDelegate. Zobacz ogólny przewodnik po zdarzeniach i listę metod na GMSPanoramaViewDelegate.