Kamera i widok

Wybierz platformę: Android iOS JavaScript

W pakiecie Maps SDK na iOS możesz zmienić punkt widzenia użytkownika na mapie, zmieniając aparat na mapie.

W pakiecie Maps SDK na iOS użytkownicy mogą przechylać i obracać mapy, aby dostosować je do orientacji dostosowanej do ich kontekstu. Na każdym poziomie powiększenia użytkownicy mogą przesuwać mapę i zmieniać jej perspektywę, nie tracąc czasu.

Zmiany w aparacie nie powodują zmiany znaczników, linii łamanych ani innych dodanych elementów graficznych, ale możesz je dostosować, aby lepiej pasowały do nowego widoku.

Widok mapy

Maps SDK na iOS używa odwzorowania Mercatora do reprezentowania powierzchni świata (sfery) na ekranie urządzenia (płaska płaszczyzna).

Położenie kamery

Widok mapy jest modelowany jako kamera patrząca w dół na płaskiej płaszczyźnie. Położenie kamery (a tym samym renderowanie mapy) jest określane przez te właściwości: cel (szerokość i długość geograficzna), kierowanie, pochylenie i powiększenie.

Schemat właściwości kamery

Cel (lokalizacja)

Cel kamery to lokalizacja pośrodku mapy określona jako współrzędne szerokości i długości geograficznej.

Szerokość geograficzna może wynosić od -85 do 85 stopni włącznie. Wartości powyżej lub poniżej tego zakresu będą ograniczane do najbliższej wartości z tego zakresu. Na przykład szerokość geograficzna równa 100 powoduje ustawienie wartości 85. Długość geograficzna mieści się w zakresie od -180 do 180 stopni włącznie. Wartości powyżej lub poniżej tego zakresu zostaną zapakowane w taki sposób, aby mieściły się w danym zakresie (-180, 180). Na przykład wartości 480, 840 i 1200 zostaną zapakowane w zakresie 120 stopni.

Orientacja

Orientacja kamery określa kierunek kompasu, mierzony w stopniach od rzeczywistej północy, odpowiadający górnej krawędzi mapy. Jeśli narysujesz pionową linię od środka mapy do górnej krawędzi mapy, przesunięcie będzie odpowiadać kierunku kamery (mierzone w stopniach) względem rzeczywistej północy.

Orientacja 0 oznacza, że góra mapy wskazuje rzeczywistą północ. Wartość kierunku 90 oznacza, że góra mapy jest skierowana we wschód (90 stopni na kompasie). Wartość 180 oznacza górną część mapy leżącą w kierunku południowym.

Interfejs API Map Google umożliwia zmianę kierunku mapy. Na przykład osoba jadąca samochodem często obraca mapę drogową, aby dopasować ją do kierunku jazdy, a turyści korzystający z mapy i kompasu zwykle konfigurują mapę tak, aby linia pionowa wskazywała północ.

Pochylenie (kąt patrzenia)

Pochylenie określa położenie kamery na łuku bezpośrednio nad pozycją środkową mapy, mierzoną w stopniach od nadiru (kierunku wskazującego bezpośrednio pod kamerą). Wartość 0 oznacza, że kamera jest skierowana prosto w dół. Wartości większe niż 0 odpowiadają kamerze, która jest nachylona w kierunku horyzontu o określoną liczbę stopni. Po zmianie kąta patrzenia mapa wyświetla się w perspektywie, przy czym odległe obiekty wydają się mniejsze, a obiekty w pobliżu stają się większe. Oto ilustracje.

Na poniższych obrazach kąt patrzenia wynosi 0 stopni. Pierwszy obraz przedstawia schemat – pozycja 1 to pozycja kamery, a pozycja 2 – bieżąca pozycja na mapie. Powstała mapa jest widoczna pod nią.

Zrzut ekranu mapy z kamerą ustawioną pod kątem 0 stopni przy powiększeniu 18.
Mapa wyświetlana z domyślnym kątem patrzenia kamery.
Diagram pokazujący domyślne położenie kamery bezpośrednio nad pozycją na mapie pod kątem 0 stopni.
Domyślny kąt patrzenia kamery.

Na poniższych obrazach kąt patrzenia wynosi 45 stopni. Zwróć uwagę, że kamera przesuwa się w połowie łuku między głową pionową (0 stopni) a podłożem (90 stopni) w pozycji 3. Kamera nadal jest skierowany na punkt środkowy mapy, ale obszar reprezentowany przez linię w pozycji 4 jest teraz widoczny.

Zrzut ekranu mapy z kamerą pod kątem 45 stopni przy powiększeniu 18.
Mapa jest wyświetlana pod kątem 45 stopni.
Diagram przedstawiający kąt patrzenia kamery ustawiony na 45 stopni z poziomem powiększenia nadal ustawionym na 18.
Kąt widzenia kamery wynoszący 45 stopni.

Mapa na tym zrzucie ekranu jest nadal wyśrodkowana w tym samym punkcie co na oryginalnej mapie, ale na jej górze pojawiło się więcej obiektów. Gdy zwiększysz kąt powyżej 45 stopni, elementy pomiędzy aparatem a położeniem mapy stają się proporcjonalnie większe, a obiekty poza położeniem mapy stają się proporcjonalnie mniejsze, co daje efekt trójwymiarowy.

Zoom

Poziom powiększenia kamery określa skalę mapy. Przy większym powiększeniu na ekranie widać więcej szczegółów, a przy mniejszym stopniu widać na ekranie więcej szczegółów. Przy poziomie powiększenia 0 skala mapy jest taka, że cały świat ma szerokość około 256 punktów.

Zwiększenie poziomu powiększenia o 1 powoduje podwojenie szerokości ekranu. Dlatego na poziomie powiększenia N szerokość świata wynosi około 256 * 2N punktów. Na przykład przy powiększeniu 2 cały świat ma około 1024 punkty szerokości.

Poziom powiększenia nie musi być liczbą całkowitą. Zakres powiększenia dozwolony w przypadku mapy zależy od wielu czynników, w tym od celu, typu mapy i rozmiaru ekranu. Każda liczba spoza zakresu zostanie przekonwertowana na następną najbliższą prawidłową wartość, którą może być minimalny lub maksymalny poziom powiększenia. Poniższa lista pokazuje przybliżony poziom szczegółowości na poszczególnych poziomach powiększenia:

  • 1: Świat
  • 5: Ląd/kontynent
  • 10: Miasto
  • 15: Ulice
  • 20. Budynki
Te obrazy pokazują wygląd różnych poziomów powiększenia:
Zrzut ekranu mapy w powiększeniu 5
Mapa w powiększeniu 5.
Zrzut ekranu mapy w powiększeniu 15
Mapa w powiększeniu 15.
Zrzut ekranu mapy przy powiększeniu 20
Mapa w powiększeniu 20.

Ustaw początkową pozycję kamery

Ustaw początkowe położenie kamery za pomocą obiektu GMSCameraPosition. Pozwoli Ci to ustawić szerokość i długość geograficzną celu oraz pochylenie, powiększenie i powiększenie.

Aby ustawić początkowe położenie kamery, utwórz obiekt GMSMapViewOptions i ustaw we właściwości camera wartość GMSCameraPosition. Następnie przekaż opcje do konstruktora dogodnego GMSMapView.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 16)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:16];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Obiekt GMSMapView możesz też utworzyć za pomocą domyślnej metody init w UIView. W takim przypadku pozycja kamery zaczyna się w lokalizacji domyślnej, a Ty możesz ją zmienić po utworzeniu.

Swift

let options = GMSMapViewOptions()
options.frame = self.view.bounds
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.frame = self.view.bounds;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Zmień pozycję kamery

Możesz automatycznie zmienić pozycję kamery, aby ustawić lokalizację, przechylenie, pochylenie i powiększenie. GMSMapView udostępnia kilka metod zmiany pozycji kamery, jednak zwykle należy użyć metody GMSCameraPosition lub GMSCameraUpdate:

  • Obiekt GMSCameraPosition zawiera właściwości i metody służące do zmiany każdego parametru pozycji kamery: celu, położenia, nachylenia i powiększenia.

  • GMSCameraUpdate umożliwia zmianę celu, pochylenia, przechylenia i powiększenia. Udostępnia też dodatkowe, wygodne metody m.in. do przewijania, zaawansowanego powiększania, wyśrodkowywania kamery we wcześniej zdefiniowanych granicach.

Gdy poruszasz kamerą, możesz „przyciągnąć” ją do nowej pozycji, co oznacza, że nie ma animacji, lub animować ruch. Jeśli na przykład animujesz zmianę położenia docelowego kamery, animacja będzie przesuwać się z wcześniejszej lokalizacji do nowej.

Animacja interpoluje między bieżącymi atrybutami kamery a nowymi atrybutami kamery. Możesz ustawić czas trwania animacji za pomocą opcji Podstawowa animacja.

Użyj konta GMSCameraPosition

Aby zmienić kamerę za pomocą GMSCameraPosition, utwórz nowy obiekt lub skopiuj istniejący obiekt, a następnie ustaw go na obiekcie GMSMapView. Aby przyciągnąć kamerę do nowej lokalizacji z animacją lub bez niej, użyj obiektu GMSCameraPosition.

Za pomocą obiektu GMSCameraPosition możesz skonfigurować właściwości kamery, takie jak szerokość, długość geograficzna, powiększenie, położenie i kąt patrzenia. Następnie używasz tego obiektu do ustawienia właściwości camera obiektu GMSMapView.

Swift

let fancy = GMSCameraPosition(
  latitude: -33,
  longitude: 151,
  zoom: 6,
  bearing: 270,
  viewingAngle: 45
)
mapView.camera = fancy
      

Objective-C

GMSCameraPosition *fancy = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                       longitude:151.2086
                                                            zoom:6
                                                         bearing:30
                                                    viewingAngle:45];
[mapView setCamera:fancy];
      

Pomiń wszystkie właściwości GMSCameraPosition, dla których chcesz ustawić wartość domyślną.

Aby animować ruch, użyj metody animateToCameraPosition: zamiast ustawiać właściwość camera.

Użyj konta GMSCameraUpdate

GMSCameraUpdate pozwala zmienić pozycję kamery i wybrać, czy nowe położenie ma być przyciągane do kamery, czy animowane. Zaletą usługi GMSCameraUpdate jest wygoda. Możesz używać narzędzia GMSCameraPosition do wykonywania tych samych zadań co GMSCameraUpdate, ale GMSCameraUpdate udostępnia dodatkowe metody pomocnicze, które ułatwiają obsługę kamery.

Aby np. zwiększyć bieżący poziom powiększenia za pomocą funkcji GMSCameraPosition, musisz najpierw określić bieżący poziom powiększenia, a następnie utworzyć obiekt GMSCameraPosition, w którym ustawisz wartość powiększenia równą 1.

Możesz też utworzyć obiekt GMSCameraUpdate za pomocą metody zoomIn:. Następnie zaktualizuj kamerę, przekazując obiekt GMSCameraUpdate do metody GMSMapView animateWithCameraUpdate:.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

Aby przyciągnąć kamerę do nowej pozycji, użyj metody GMSMapView moveCamera:.

W następnym przykładzie używamy obiektu GMSCameraUpdate do animowania ruchu kamery w celu wyśrodkowania jej na Vancouver.

Swift

// Center the camera on Vancouver, Canada
let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let vancouverCam = GMSCameraUpdate.setTarget(vancouver)
mapView.animate(with: vancouverCam)
      

Objective-C

// Center the camera on Vancouver, Canada
CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
GMSCameraUpdate *vancouverCam = [GMSCameraUpdate setTarget:vancouver];
[mapView animateWithCameraUpdate:vancouverCam];
      

Utwórz obiekt GMSCameraUpdate

Zbuduj obiekt GMSCameraUpdate, używając jednej z jego metod.

zoomIn:zoomOut:
Zmień bieżący poziom powiększenia o 1,0, bez zmian we wszystkich innych właściwościach.
zoomTo:
Zmienia poziom powiększenia na podaną wartość, zachowując pozostałe właściwości bez zmian.
zoomBy:
Zwiększa (lub zmniejsza, jeśli wartość jest ujemna) poziom powiększenia o podaną wartość.
zoomBy:atPoint:
Zwiększa (lub zmniejsza, jeśli wartość jest ujemna) poziom powiększenia o podaną wartość przy zachowaniu określonego punktu na ekranie.
setTarget:
Zmienia szerokość i długość geograficzną kamery przy zachowaniu wszystkich pozostałych właściwości.
setTarget:zoom:
Zmienia szerokość i długość geograficzną oraz powiększenie kamery przy zachowaniu wszystkich pozostałych właściwości.
setCamera:
Ustawia nowy element: GMSCameraPosition.
scrollByX:Y:
Zmienia szerokość i długość geograficzną kamery, aby przesunąć mapę o określoną liczbę punktów. Dodatnia wartość x powoduje, że kamera przesuwa się w prawo, przez co mapa jest przesunięta w lewo. Wartość dodatnia y powoduje przesuwanie kamery w dół, w wyniku czego mapa wydaje się przesunięta w górę. Przewijanie zależy od bieżącego położenia kamery. Jeśli na przykład pochylenie kamery wynosi 90 stopni, kierunek wschód jest ustawiony na „górę”.
fitBounds:
Przekształca kamerę w taki sposób, aby wyśrodkować określone granice na ekranie przy największym możliwym poziomie powiększenia. Stosuje domyślne dopełnienie do granic 64 punktów.
fitBounds:withPadding:
Przekształca kamerę w taki sposób, aby wyśrodkować określone granice na ekranie przy największym możliwym poziomie powiększenia. Użyj tej metody, aby określić takie samo dopełnienie w punktach dla wszystkich boków ramki ograniczającej.
fitBounds:withEdgeInsets:
Przekształca kamerę w taki sposób, aby wyśrodkować określone granice na ekranie przy największym możliwym poziomie powiększenia. W przypadku opcji UIEdgeInsets dopełnienie dla każdej strony ramki ograniczającej określasz oddzielnie.

Użyj narzędzia GMSMapView, aby zmienić pojedynczą usługę

GMSMapView udostępnia kilka metod, które umożliwiają poruszanie się kamerą bez konieczności użycia obiektu GMSCameraPosition lub GMSCameraUpdate. Za pomocą tych metod, takich jak animateToLocation: lub animateToZoom:, możesz animować zmianę pojedynczej właściwości kamery.

Możesz na przykład użyć metody toViewingAngle:, aby animować zmianę przechylenia kamery.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw cel (lokalizację)

Lokalizacja określa środek mapy. Lokalizacje są określane za pomocą szerokości i długości geograficznej, a reprezentowane automatycznie przez kolumnę CLLocationCoordinate2D utworzoną za pomocą CLLocationCoordinate2DMake.

Użyj aplikacji GMSCameraPosition, aby zmienić lokalizację. W tym przykładzie mapa zostanie przyciągnięta do nowej lokalizacji.

Swift

let target = CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208)
mapView.camera = GMSCameraPosition(target: target, zoom: 6)
      

Objective-C

CLLocationCoordinate2D target =
    CLLocationCoordinate2DMake(-33.868, 151.208);
mapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:6];
      

Aby animować zmianę i przesunąć mapę do nowej lokalizacji, możesz użyć metody animateToCameraPosition:, zamiast ustawiać właściwość camera. Możesz też użyć metody animateToLocation: w GMSMapView.

Swift

mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
      

Objective-C

[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
      

Możesz też utworzyć obiekt GMSCameraUpdate, aby przesunąć kamerę. Użyj wbudowanej metody scrollByX:Y:, aby określić liczbę punktów do przewijania kamery w kierunkach X i Y. W tym przykładzie przewijasz kamerę o 200 punktów w prawo i o 100 punktów w dół:

Swift

// Move the camera 200 points to the right, and 100 points downwards
let downwards = GMSCameraUpdate.scrollBy(x: 200, y: 100)
mapView.animate(with: downwards)
      

Objective-C

// Move the camera 200 points to the right, and 100 points downwards
GMSCameraUpdate *downwards = [GMSCameraUpdate scrollByX:200.0 Y:100.0];
[mapView animateWithCameraUpdate:downwards];
      

Ustaw kierunek (orientację)

Orientacja to kierunek kompasu, mierzony w stopniach od rzeczywistej północy, odnoszący się do górnej krawędzi mapy. Na przykład odchylenie o 90 stopni prowadzi do mapy, w której górne krawędzie kierują się na wschód.

Ustaw kierowanie automatycznie za pomocą metody GMSCameraPosition lub GMSCameraUpdate albo za pomocą metody animateToBearing: dostępnej w GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Ustaw pochylenie (kąt patrzenia)

Kąt patrzenia to położenie kamery na łuku między położeniem środkowym mapy a powierzchnią Ziemi, mierzona w stopniach od nadiru (kierunku wskazującego bezpośrednio pod kamerą). Po zmianie kąta patrzenia mapa jest wyświetlana jako perspektywa, a elementy między aparatem a położeniem mapy stają się proporcjonalnie większe, a elementy poza położeniem na mapie są znacznie mniejsze, co daje efekt trójwymiarowy.

Kąt patrzenia może wynosić od 0 (wskazówka prosto w dół na mapie) do maksymalnie wartości maksymalnej zależnej od poziomu powiększenia. Przy powiększeniem na poziomie 16 lub wyższym maksymalny kąt wynosi 65 stopni. W przypadku powiększenia 10 lub mniejszego maksymalny kąt wynosi 30 stopni.

Ustaw kąt patrzenia automatycznie za pomocą GMSCameraPosition lub GMSCameraUpdate albo za pomocą metody animateToViewingAngle: GMSMapView.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw powiększenie

Poziom powiększenia kamery określa skalę mapy. Na większych poziomach powiększenia zobaczysz więcej szczegółów na ekranie, a mniejsze – więcej szczegółów.

Powiększenie ustawiaj automatycznie za pomocą GMSCameraPosition lub GMSCameraUpdate albo za pomocą metody animateToZoom: GMSMapView.

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

W przykładzie poniżej użyto metody zoomIn: do utworzenia obiektu GMSCameraUpdate do animowania powiększenia o 1 poziom względem bieżącego poziomu.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

Wyznaczanie granic

Aby przesunąć kamerę tak, aby cały interesujący Cię obszar był widoczny przy największym możliwym poziomie powiększenia, wyznacz granice dla widoku z kamery. Jeśli na przykład chcesz wyświetlić wszystkie stacje benzynowe znajdujące się w promieniu 8 km od bieżącej pozycji użytkownika, przesuń kamerę tak, aby były widoczne na ekranie:

  1. Oblicz wartość GMSCoordinateBounds, która ma być widoczna na ekranie.
  2. Aby zwrócić nowy parametr GMSCameraPosition, użyj metody cameraForBounds:insets: GMSMapView.

Ustawienie tych granic daje pewność, że dany element GMSCoordinateBounds w całości mieści się w bieżącym rozmiarze mapy. Ta metoda ustawia pochylenie i położenie mapy na 0.

Poniższy przykład pokazuje, jak zmienić aparat tak, aby zarówno Vancouver, jak i Calgary były w jednym widoku.

Swift

let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let calgary = CLLocationCoordinate2D(latitude: 51.05,longitude: -114.05)
let bounds = GMSCoordinateBounds(coordinate: vancouver, coordinate: calgary)
let camera = mapView.camera(for: bounds, insets: UIEdgeInsets())!
mapView.camera = camera
      

Objective-C

CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
CLLocationCoordinate2D calgary = CLLocationCoordinate2DMake(51.05, -114.05);
GMSCoordinateBounds *bounds =
    [[GMSCoordinateBounds alloc] initWithCoordinate:vancouver coordinate:calgary];
GMSCameraPosition *camera = [mapView cameraForBounds:bounds insets:UIEdgeInsetsZero];
mapView.camera = camera;
      

Ograniczanie przesuwania w danym obszarze przez użytkownika

Te scenariusze wyznaczają granice mapy, ale użytkownik może ją przewinąć lub przesunąć poza te granice. Zamiast tego możesz ograniczyć granice osi współrzędnych punktu fokalnego mapy (celu kamery), aby użytkownicy mogli tylko przewijać i przesuwać mapę tylko w tych granicach.

Na przykład aplikacja handlowa dla centrum handlowego lub lotniska może ograniczyć mapę do określonych granic, aby umożliwić użytkownikom przewijanie i przesuwanie w obrębie tych granic.

Aby ograniczyć przesuwanie do określonych granic, ustaw we właściwości cameraTargetBounds GMSMapView obiekt GMSCoordinateBounds, który określa wymagane granice. Aby później usunąć ograniczenie, ustaw cameraTargetBounds na wartość nil.

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Na diagramie poniżej widać scenariusz, w którym cel kamery jest ograniczony do obszaru, który jest nieco większy od widocznego obszaru. Użytkownik może przewijać i przesuwać widok, pod warunkiem że cel kamery pozostaje w ograniczonym obszarze. Krzyżyk oznacza cel kamery:

Diagram przedstawiający granice kamery, które są większe niż widoczny obszar.

Mapa zawsze wypełnia widoczny obszar, nawet jeśli spowoduje to wyświetlenie obszarów znajdujących się poza wyznaczonymi granicami. Jeśli na przykład ustawisz cel kamery w rogu ograniczonego obszaru, obszar poza rogiem będzie w widocznym obszarze widoczny, ale użytkownicy nie będą mogli przewijać go dalej. Ten scenariusz ilustruje poniższy diagram. Krzyżyk oznacza cel kamery:

Diagram przedstawiający cel kamery umieszczony w prawym dolnym rogu
      granicy kamery.

Na poniższym schemacie cel kamery ma bardzo ograniczone granice, przez co użytkownik ma bardzo mało możliwości przewijania lub przesuwania mapy. Krzyżyk oznacza cel kamery:

Diagram przedstawiający granice kamery, które są mniejsze niż widoczny obszar.

Ustaw minimalne lub maksymalne powiększenie

Stałe globalne kGMSMinZoomLevel i kGMSMaxZoomLevel określają minimalne i maksymalne wartości powiększenia. Domyślnie właściwości minZoom i maxZoom elementu GMSMapView mają te stałe.

Aby ograniczyć zakres poziomów powiększenia dostępny dla mapy, ustaw minimalny i maksymalny poziom powiększenia. Ten kod ogranicza poziom powiększenia od 10 do 15.

Swift

let camera = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 12
)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887
                                                       longitude:-87.622
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero
                                        camera:camera];
[mapView setMinZoom:10 maxZoom:15];
      

Zakres powiększenia musisz ustawić za pomocą metody setMinZoom:maxZoom:. Bieżące wartości możesz jednak odczytać za pomocą właściwości minZoom i maxZoom. Jest to pomocne, gdy ograniczasz tylko jedną z wartości. Ten kod zmienia tylko minimalny poziom powiększenia.

Swift

mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
      

Objective-C

[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
      

Jeśli po zaktualizowaniu wartości powiększenia minimalnego i maksymalnego poziom powiększenia w kamerze zostanie ustawiony na wartość wykraczającą poza nowy zakres, bieżące powiększenie automatycznie zmieni się i wyświetli najbliższą prawidłową wartość. W poniższym kodzie pierwotne powiększenie jest zdefiniowane jako 4. Gdy później ustawisz zakres powiększenia na 10–15, bieżące powiększenie zmieni się na 10.

Swift

// Sets the zoom level to 4.
let camera2 = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 4
)
let mapView2 = GMSMapView(frame: .zero, camera: camera)

// The current zoom, 4, is outside of the range. The zoom will change to 10.
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

// Sets the zoom level to 4.
GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude:41.887
                                                         longitude:-87.622
                                                              zoom:4];
GMSMapView *mapView2 = [GMSMapView mapWithFrame:CGRectZero
                                         camera:camera];
// The current zoom, 4, is outside of the range. The zoom will change to 10.
[mapView setMinZoom:10 maxZoom:15];