
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
panoramaIDmoże się zmieniać z czasem i nie nadaje się jako długoterminowe lub zakodowane na stałe odniesienie.panoramaIDnajlepiej nadaje się do zapewniania dostępu programowego do różnych zdjęć Street View. coordinate- Dokładna lokalizacja tego obrazu wyrażona jako
CLLocationCoordinate2D. Użyjcoordinate, 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:radiusjest podobna, ale pozwala określić promień wyszukiwania w metrach wokół współrzędnych.Metoda
moveNearCoordinate:sourcepozwala 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:sourcepozwala 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:
- (Jednorazowo) Wykonaj czynności opisane w sekcji Pierwsze kroki, aby pobrać pakiet SDK, uzyskać klucz i dodać wymagane platformy.
- Utwórz lub zaktualizuj
ViewController. Jeśli panorama ma być wyświetlana, gdy ten kontroler widoku stanie się widoczny, utwórz ją w metodzieloadView. - Utwórz i utwórz instancję klasy
GMSPanoramaViewza pomocą metodyGMSPanoramaViewinitWithFrame:. Jeśli ma to być jedyny widok kontrolera widoku, jako ramki mapy można użyćCGRectZero– rozmiar mapy zostanie zmieniony automatycznie. - Ustaw obiekt
GMSPanoramaViewjako widok kontrolera widoku. Na przykład:self.view = panoView;. - 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:
headingokreś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ślnie0) 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.