Google Maps Street View pozwala odkrywać miejsca na całym świecie dzięki 360-stopniowym obrazom na poziomie ulicy. Możesz odkrywać zabytki świata, przeglądać naturalne cuda, nawigować w podróży lub pokazywać na zewnątrz swojej firmy.
- przegląd
- panoramy Street View
- dostęp do danych Street View
- ustawienie lokalizacji panoramy
- wyświetlanie obrazów Street View
- dodawanie przeglądarki Street View
- Swift
- Objective-C
- dostosowywanie przeglądarki
- Swift
- Objective-C
- uruchamianie Street View ze schematem URL
- lokalizacje Street View i punkt widzenia (POV)
- Swift
- Objective-C
- orientacja
- Zoom
- przesuwanie kamery
- Swift
- Objective-C
- znaczniki w Street View
- Swift
- Objective-C
- Swift
- Objective-C
- zdarzenia
przegląd
Google Street View zapewnia panoramiczne widoki 360 stopni z wyznaczonych dróg na całym obszarze zasięgu. Zasięg dostępny za pośrednictwem zestawu SDK jest taki sam jak dla aplikacji Google Maps dla iOS lub https://maps.google.com/
. Możesz przeczytać więcej o Street View i zobaczyć Obsługiwane obszary na interaktywnej mapie O Street View.
Maps SDK dla iOS zapewnia usługę Street View do uzyskiwania i przetwarzania obrazów używanych w Google Maps Street View. Obrazy Street View są zwracane jako panoramy i są oglądane z poziomu przeglądarki Street View-obiektu typu GMSPanoramaView
.
panoramy Street View
każda Panorama Street View to obraz lub zestaw obrazów, który zapewnia pełny widok 360 stopni z jednej lokalizacji. Obrazy są zgodne z projekcją równo-kanciastą(Plate Carrée), która zawiera 360 stopni widzenia poziomego (pełne zawijanie) i 180 stopni widzenia pionowego (od góry do góry). Otrzymana panorama 360 stopni definiuje rzut na sferę z obrazem zawiniętym w dwuwymiarową powierzchnię tej sfery.
panoramy Street View można oglądać za pomocą obiektuGMSPanoramaView
. Obiekt ten udostępnia przeglądarkę, która renderuje panoramę jako sferę, z kamerą poś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 za pomocą jednego z dwóch elementów metadanych:
panoramaID
unikalny identyfikator panoramy Street View. TopanoramaID
może się zmieniać w czasie i nie jest odpowiednie jako długoterminowe lub zakodowane na stałe odniesienie.panoramaID
jest najlepiej używany do zapewnienia programowego dostępu do różnych obrazów Street View.coordinate
dokładne położenie tego obrazu, wyrażone jakoCLLocationCoordinate2D
. Użyjcoordinate
do trwałego przechowywania lokalizacji panoramy lub do tłumaczenia działań użytkownika na mapie na obraz Street View.
zarównopanoramaID
, jak icoordinate
są przechowywane jako właściwości obiektuGMSPanorama
. Możesz zażądać GMSPanorama
zGMSPanoramaService
używając coordinate
lub panoramaID
. Obiekt będzie zawierał zarówno fragmenty metadanych, jak i tablicę linków do pobliskich panoram.
ustawienie lokalizacji panoramy
położenie panoramy Street View można ustawić na podstawie współrzędnych.
-
moveNearCoordinate
-
metoda
moveNearCoordinate:radius
jest podobna, ale pozwala określić promień wyszukiwania, w metrach, wokół współrzędnych. -
metoda
moveNearCoordinate:source
pozwala na podanie źródła.Źródło jest przydatne, jeśli chcesz ograniczyć Widok ulicy, aby szukać tylko panoram, które są na zewnątrz. Domyślnie panoramy lokalizacji są wewnętrzne lub zewnętrzne. Należy pamiętać, że panoramy zewnętrzne mogą nie istnieć dla określonej lokalizacji. -
metoda
moveNearCoordinate:radius:source
pozwala na podanie zarówno aradiusza, jak i źródła.
wyświetlanie obrazów Street View
dodawanie przeglądarki Street View
podstawowe kroki dodawania przeglądarki to:
- (raz) wykonaj kroki opisane w części Pierwsze kroki,aby uzyskać SDK, uzyskać klucz i dodać wymagane ramy.
- Utwórz lub zaktualizuj
ViewController
. Jeśli panorama zostanie wyświetlona, gdy ten kontroler widoku stanie się widoczny, należy ją utworzyć za pomocą metodyloadView
. - Tworzenie i tworzenie instancji klasy
GMSPanoramaView
przy użyciu metodyGMSPanoramaView
initWithFrame:
. Jeśli ma być używany jako jedyny widok kontrolera, wtedyCGRectZero
może być użyty jako ramka mapy — mapa zostanie automatycznie zmieniona. - ustawia obiekt
GMSPanoramaView
jako widok kontrolera widoku, np.self.view = panoView;
. - Ustaw lokalizację obrazu Street View za pomocą metody takiej jak
moveNearCoordinate:
.
poniższy przykład dodaje przeglądarkę Street View do aplikacji.
Swift
import GoogleMapsclass 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 = initWithFrame:CGRectZero]; self.view = panoView; ;}@end
dostosowywanie przeglądarki
możesz dostosować przeglądarkę, ograniczając dostępne gesty. Bydefault, przesuwanie, powiększanie i podróżowanie 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 sterowane przez użytkownika; zmiany programowe są nadal możliwe, gdy gest jest wyłączony.
orientationGestures
czy użytkownik będzie mógł ponownie zorientować kamerę, dotykając lub przeciągając. Ustaw naNO
, aby wyłączyć zmiany orientacji kamery.zoomGestures
czy użytkownik będzie mógł uszczypnąć, aby powiększyć. Ustaw naNO
, aby wyłączyć zoom.
navigationGestures
czy użytkownik będzie mógł zmienić widoczną panoramę. Użytkownicy mogą użyć pojedynczego dotknięcia łączy nawigacyjnych lub dwukrotnego dotknięcia widoku, aby zmienić panoramy ustawione naNO
, aby wyłączyć zmiany nawigacji.
możesz włączyć lub wyłączyć wszystkie gesty naraz za pomocąsetAllGesturesEnabled:
metoda.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
;
uruchamianie Street View ze schematem URL
obrazy Google Street View są wyświetlane z poziomu Map Google dla aplikacji iOS. Możesz uruchomić aplikację Google Maps dla iOS w trybie streetview za pomocą comgooglemaps
schematu URL, ustawiając mapmode
parametr na streetview
. Przykład adresu URL, który uruchomi Street Viewappears poniżej. Aby uzyskać więcej informacji, zapoznaj się ze Schemedocumentation URL.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
lokalizacje Street View i punkt widzenia (POV)
GMSPanoramaCamera
pozwala ustawić punkt widzenia kamery Street Viewcamera jako kombinację nagłówka, skoku i powiększenia.
poniższe snippety skierują kamerę na południe i nieco w dół.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = ;
orientacja
lokalizacja widoku ulicy określa położenie ostrości kamery dla programu animage, ale nie określa orientacji kamery dla tego obrazu.W tym celu obiekt GMSOrientation
definiuje dwie właściwości:
-
heading
określa kąt obrotu wokół kamery w stopniach względem prawdziwej północy. Pozycje są mierzone zgodnie z ruchem wskazówek zegara: prawdziwa północ to 0, Wschód to 90, południe to 180, Zachód to 270. -
pitch
(domyślnie0
) definiuje wariancję kąta „w górę” lub „w dół” od początkowego domyślnego skoku kamery, który jest często (ale nie zawsze) flathorizontal. (Na przykład obraz zrobiony na wzgórzu będzie prawdopodobnie prezentował wysokość, która nie jest pozioma.) Kąty nachylenia są mierzone z wartościami dodatnimi patrząc w górę (do +90 stopni prosto w górę i ortogonalnie do wysokości domyślnej) oraz wartościami ujemnymi patrząc w dół (do -90 stopni prosto w dół i ortogonalnie do wysokości domyślnej).
Zoom
Widok ulicy obsługuje różne poziomy szczegółowości obrazu Dzięki użyciu zoom.Możesz ustawić poziom powiększenia programowo, lub użytkownicy mogą zmienić poziom w przeglądarce, szczypając, aby powiększyć.
przesuwanie kamery
Po utworzeniuGMSPanoramaView
I ma skonfigurowaną kamerę ordefault, możesz ją zmienić na jeden z kilku sposobów. Po zmianie kamery masz możliwość animowania wynikowego ruchu kamery. Animacja interpoluje się między aktualnymi atrybutami kamery a nowymi atrybutami kamery.
możesz zmodyfikować obiektGMSPanoramaCamera
i ustawić go na właściwościGMSPanoramaView
camera
. Spowoduje to przyciągnięcie kamery do nowego punktu 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 = ;
możesz animować Przejście, wywołującanimateToCamera:animationDuration:
metodę GMSPanoramaView
.Dodatkowo można sterować kamerą za pomocą animacji rdzeniowej. Jest to możliwe za pośrednictwem niestandardowego CALayer
na GMSPanoramaView
GMSPanoramaLayer
.
znaczniki w Street View
obiektGMSPanoramaView
może wyświetlać znaczniki mapy. Możesz użyć nazwy GMSMarker
obiektu na GMSMapView
lubGMSPanoramaView
obiektu, ustawiając jego odpowiednie właściwości:
Swift
// Create a marker at the Eiffel Towerlet position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)let marker = GMSMarker(position: position)// Add the marker to a GMSPanoramaView object named panoViewmarker.panoramaView = panoView// Add the marker to a GMSMapView object named mapViewmarker.map = mapView
Objective-C
// Create a marker at the Eiffel TowerCLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);GMSMarker *marker = ;// Add the marker to a GMSPanoramaView object named panoViewmarker.panoramaView = panoView;// Add the marker to a GMSMapView object named mapViewmarker.map = mapView;
znaczniki będą skalowane w zależności od odległości między położeniem znacznika a lokalizacją GMSCameraView
. Jeśli ta odległość stanie się zbyt duża, znacznik stanie się zbyt mały, aby go wyświetlić i zostanie ukryty przed widokiem.
ustaw właściwośćpanoramaView
nanil
, aby usunąć ją zGMSPanoramaView
.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
zdarzenia
możesz słuchać zdarzeń, które występują w Panoramie Street View, np. gdy użytkownik naciska przycisk auser na panoramę. Aby nasłuchiwać zdarzeń, należy zaimplementować protokółGMSPanoramaViewDelegate
. Zobacz ogólny przewodnik po zdarzeniach i listę metod naGMSPanoramaViewDelegate
.