Kamera i widok

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wybierz platformę: Android iOS JavaScript

Korzystając z pakietu SDK Map na iOS, możesz zmienić punkt widzenia mapy, zmieniając kamerę mapy.

Dzięki pakietowi Maps SDK na iOS użytkownicy mogą przechylać i obracać mapy, by dostosować je do orientacji, która będzie im odpowiadała. Użytkownicy mogą przesuwać mapę przy dowolnym poziomie powiększenia oraz zmieniać jej spojrzenie z niewielkim opóźnieniem.

Zmiany wprowadzone w aparacie nie powodują zmiany znaczników, linii łamanych ani innych dodanych elementów graficznych. Możesz jednak zmieniać je, aby lepiej dopasować je do nowego widoku.

Widok mapy

Maps SDK na iOS wykorzystuje odwzorowanie ekranu, które reprezentuje powierzchnię świata (kulę sferyczną) na ekranie urządzenia (płaską płaszczyznę).

położenie kamery,

Widok mapy jest modelowany jako aparat patrzący w dół na płaskiej płaszczyźnie. Położenie kamery (a tym samym jej renderowanie) określają te właściwości: miejsce docelowe (lokalizacja geograficzna i szerokość geograficzna), wykorzystanie, przechylenie i powiększenie.

Diagram właściwości aparatu

Cel (lokalizacja)

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

Szerokość geograficzna może wynosić od -85 do 85 stopni (włącznie). Wartości powyżej lub poniżej tego zakresu zostaną ograniczone do najbliższej wartości w tym zakresie. Na przykład określenie szerokości geograficznej wynoszącej 100 spowoduje ustawienie wartości na 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ą spakowane, aby mieściły się w zakresie (–180, 180). Na przykład rozmiary 480, 840 i 1200 zostaną spadzone do 120 stopni.

Orientacja (orientacja)

Łożysko kamery określa kierunek kompasu w stopniach wyrażony w stopniach od prawdziwej północy, co odpowiada górnej krawędzi mapy. Jeśli narysowasz pionową linię od środka mapy do górnej krawędzi mapy, kąt wierzchołka odpowiada ustawieniu kamery (mierzonej w stopniach) względem prawdziwej północy.

Znak 0 oznacza, że początek mapy wskazuje prawdziwą północ. Wartość 90 oznacza, że punkt u góry mapy wskazuje na wschód (90 stopni na kompasie). Wartość 180 oznacza początek mapy na południe.

Interfejs API Map Google umożliwia zmianę kierunku mapy. Na przykład ktoś, kto prowadzi samochód, często zmienia mapę drogową, by dostosować ją do kierunku podróżowania, natomiast turyści korzystający z mapy i kompasu zwykle ustawiają mapę tak, aby linia pionowa kierowała się na północ.

Pochylenie (kąt patrzenia)

Pochylenie definiuje położenie kamery na łuku bezpośrednio nad środkowym położeniem mapy mierzoną w stopniach od nadir (kierunku bezpośrednio pod aparatem). Wartość 0 oznacza aparat skierowany prosto do dołu. Wartości większe niż 0 to aparat, który jest ustawiany do horyzontu o określoną liczbę stopni. Gdy zmienisz kąt wyświetlania, mapa będzie wyświetlana z perspektywy. Różne obiekty mogą być mniejsze, a obiekty w pobliżu będą większe. Ilustracje poniżej pokazują to.

Na poniższych obrazach kąt patrzenia wynosi 0 stopni. Pierwszy obraz przedstawia schemat. Pozycja 1 oznacza położenie kamery, a 2 to aktualna pozycja na mapie. Otrzymana mapa jest widoczna pod spodem.

Zrzut ekranu mapy z kamerą ustawioną pod kątem 0 stopni, przy powiększeniu 18
Mapa wyświetlana z domyślnym kątem widzenia kamery.
Schemat przedstawiający domyślną pozycję kamery bezpośrednio nad pozycją mapy, pod kątem 0 stopni.
Domyślny kąt widzenia kamery.

Na poniższych obrazach kąt patrzenia wynosi 45 stopni. Zwróć uwagę, że kamera porusza się w połowie między łukami (0 stopni) a podłożem (90 stopni) do pozycji 3. Kamera nadal wskazuje punkt centralny mapy, ale obszar reprezentowany przez linię w pozycji 4 jest teraz widoczny.

Zrzut ekranu mapy z aparatem o 45 stopniach przy powiększeniu 18.
Mapa wyświetlana pod kątem 45 stopni.
Diagram przedstawiający kąt widzenia kamery ustawiony na 45 stopni z powiększeniem na poziomie 18 stopni.
Kąt oglądania pod kątem 45 stopni.

Mapa na tym zrzucie ekranu jest nadal wyśrodkowana na tym samym punkcie, co pierwotna mapa, ale na górze mapy pojawiło się więcej funkcji. W miarę zwiększania kąta przekraczającego 45 stopni funkcje kamery i pozycji na mapie wydają się proporcjonalnie większe, a elementy poza pozycją mapy wyglądają na proporcjonalnie mniejsze, co daje efekt trójwymiarowy.

Szersza

Poziom powiększenia kamery określa skalę mapy. Na większych poziomach powiększenia na ekranie widać więcej szczegółów, ale na mniejszych poziomach powiększenia widać większą część świata. Na poziomie powiększenia 0 skala mapy wygląda tak, że cały świat ma szerokość około 256 punktów.

Zwiększenie poziomu powiększenia o 1 powoduje podwojenie szerokości świata na ekranie. W związku z tym przy poziomie powiększenia N szerokość świata wynosi około 256 * 2N punktów. Na przykład na poziomie 2 cały świat ma około 1024 punkty.

Poziom powiększenia nie musi być liczbą całkowitą. Zakres poziomu powiększenia dozwolony przez mapę zależy od wielu czynników, w tym od typu celu, typu mapy i rozmiaru ekranu. Każda wartość spoza zakresu zostanie przekonwertowana na najbliższą prawidłową wartość, która może być minimalnym lub maksymalnym powiększeniem. 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
Poniższe obrazy przedstawiają wygląd w różnym stopniu powiększenia:
Zrzut ekranu mapy z poziomem powiększenia 5
Mapa z poziomem powiększenia 5.
Zrzut ekranu mapy z powiększeniem 15
Mapa z powiększeniem na poziomie 15.
Zrzut ekranu mapy na poziomie powiększenia 20
Mapa przy poziomie powiększenia 20.

Ustaw początkową pozycję kamery

Ustaw początkową pozycję kamery za pomocą obiektu GMSCameraPosition, który umożliwia ustawienie szerokości i długości geograficznej celu oraz kierunku, przechylania i powiększania.

Aby ustawić początkową pozycję kamery, utwórz obiekt GMSCameraPosition, a następnie przekaż go do konstruktora wygodnego GMSMapView.

Swift

let camera = GMSCameraPosition(
  latitude: -33.8683,
  longitude: 151.2086,
  zoom: 16
)
mapView = GMSMapView(frame: self.view.bounds, camera: camera)
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:16];
mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
      

Obiekt GMSMapView możesz też utworzyć przy użyciu domyślnej metody init (UIView). W tym przypadku położenie kamery zaczyna się od domyślnej lokalizacji i możesz ją zmienić po utworzeniu.

Swift

mapView = GMSMapView(frame: self.view.bounds)
      

Objective-C

mapView = [[GMSMapView alloc] initWithFrame:self.view.bounds];
      

Zmiana pozycji kamery

Możesz automatycznie zmienić położenie kamery, aby określić jej lokalizację, kąt uchylenia, przechylenie i powiększenie. GMSMapView udostępnia kilka metod zmiany pozycji kamery, ale zwykle używa się GMSCameraPosition lub GMSCameraUpdate:

  • GMSCameraPosition zawiera właściwości i metody służące do zmiany każdego parametru pozycji kamery: kierowanie, zakręt, obrót i powiększenie.

  • GMSCameraUpdate umożliwia zmianę docelowego, zakręcenia, pochylenia i powiększenia, a także dodatkowe metody ułatwiające obsługę przewijania, powiększanie, wyśrodkowanie kamery w określonych granicach.

Gdy przesuwasz kamerę, możesz „przyciągnąć” ją do nowej pozycji, co oznacza, że nie ma animacji ani poruszać się po niej. Jeśli np. animujesz zmianę docelowego położenia kamery, animacja przesuwa się ze starej lokalizacji do nowej.

Animacja nakłada się na bieżące atrybuty kamery. Czas trwania animacji możesz określić za pomocą animacji głównej.

Użyj konta GMSCameraPosition

Aby zmienić kamerę w obiekcie GMSCameraPosition, musisz utworzyć nowy obiekt lub skopiować istniejący, a następnie ustawić go na obiekcie GMSMapView. Obiekt GMSCameraPosition pozwala przyciągnąć kamerę do nowej lokalizacji, niezależnie od animacji.

Użyj obiektu GMSCameraPosition, aby skonfigurować właściwości kamery, takie jak szerokość, długość geograficzna, powiększenie, kierunek czy kąt patrzenia. Następnie używasz tego obiektu do ustawienia właściwości camera elementu 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, które chcesz ustawić na wartość domyślną.

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

Użyj konta GMSCameraUpdate

GMSCameraUpdate umożliwia zaktualizowanie położenia kamery i określenie, czy ma być przyciągana, czy animowana do nowej pozycji. Zaletą usługi GMSCameraUpdate jest wygoda. Możesz używać GMSCameraPosition do wykonywania tych samych zadań co GMSCameraUpdate, ale GMSCameraUpdate udostępnia dodatkowe metody pomocnicze, które ułatwiają manipulowanie kamerą.

Aby np. GMSCameraPosition zwiększyć bieżący poziom powiększenia, musisz najpierw określić bieżący poziom powiększenia, a potem utworzyć obiekt GMSCameraPosition, w którym ustawisz powiększenie o wartość wyższą niż bieżący powiększenie.

Możesz też utworzyć obiekt GMSCameraUpdate metodą fabryczną 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ąć aparat do nowej pozycji, użyj metody GMSMapView moveCamera:.

W kolejnym przykładzie używasz GMSCameraUpdate, aby animować ruch kamery i wyśrodkować ją w 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];
      

Tworzenie obiektu GMSCameraUpdate

Utwórz obiekt GMSCameraUpdate za pomocą jednej z jego metod fabrycznych.

zoomIn:zoomOut:
Zmień bieżący poziom powiększenia o 1,0, zachowując wszystkie pozostałe właściwości.
zoomTo:
Zmienia poziom powiększenia na określoną wartość, zachowując wszystkie pozostałe właściwości.
zoomBy:
Zwiększa (lub zmniejsza, jeśli wartość jest ujemna) poziom powiększenia o określoną wartość.
zoomBy:atPoint:
Zwiększa (lub zmniejsza, jeśli wartość jest ujemna) poziom powiększenia o określoną wartość, utrzymując pozycję określonego punktu na ekranie.
setTarget:
Zmienia szerokość i długość geograficzną kamery przy zachowaniu wszystkich innych właściwości.
setTarget:zoom:
Zmienia szerokość i długość geograficzną kamery oraz jej powiększenie, zachowując pozostałe właściwości.
setCamera:
Wyznacza nowy GMSCameraPosition.
scrollByX:Y:
Zmienia szerokość i długość geograficzną kamery, aby przesunąć mapę o określoną liczbę punktów. Dodatnia wartość x powoduje, że aparat porusza się w prawo, więc mapa wydaje się poruszać w lewo. Dodatnia wartość y powoduje przesunięcie kamery w dół, tak aby mapa mogła się przesunąć w górę. Przewijanie zależy od bieżącego położenia kamery. Jeśli na przykład kamera jest ustawiona na 90 stopni, to wschód oznacza „w górę”.
fitBounds:
Przekształca kamerę tak, aby wyśrodkować określone granice ekranu przy najwyższym możliwym poziomie powiększenia. Stosuje domyślne dopełnienie do granic 64 punktów.
fitBounds:withPadding:
Przekształca kamerę, aby wyśrodkować określone granice ekranu na możliwie najwyższym poziomie. Użyj tej metody, aby określić to samo wypełnienie w punktach po obu stronach ramki ograniczającej.
fitBounds:withEdgeInsets:
Przekształca kamerę, aby wyśrodkować określone granice ekranu na możliwie najwyższym poziomie. W UIEdgeInsets podajesz dopełnienie każdej strony ramki ograniczającej niezależnie.

Aby zmienić pojedynczą właściwość, użyj GMSMapView

GMSMapView udostępnia kilka metod umożliwiających poruszanie się przy użyciu obiektu GMSCameraPosition lub GMSCameraUpdate. Korzystając z tych metod, np. animateToLocation: lub animateToZoom:, możesz animować zmiany w pojedynczej właściwości kamery.

Możesz np. użyć metody toViewingAngle:, aby animować zmianę przechylenia kamery.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw cel (lokalizacja)

Lokalizacja określa środek mapy. Lokalizacje są określane przez szerokość i długość geograficzną i automatycznie reprezentowane przez obiekt CLLocationCoordinate2D utworzony w CLLocationCoordinate2DMake.

Użyj GMSCameraPosition, aby zmienić lokalizację. W tym przykładzie mapa przyciąga się 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 poruszać 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 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 nośnik (orientacja)

Orientacja to kierunek kompasu, mierzony w stopniach od prawdziwej północy, w odniesieniu do górnej krawędzi mapy. Na przykład kąt 90 stopni tworzy mapę, w której górna krawędź wskazuje na wschód.

Ustaw automatycznie nośnik za pomocą metody GMSCameraPosition lub GMSCameraUpdate albo za pomocą metody animateToBearing: o wartości GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Ustaw pochylenie (kąt patrzenia)

Kąt oglądania to położenie kamery na łuku między środkową pozycją mapy a powierzchnią Ziemi, mierzoną w stopniach od nadiru (kierunku bezpośrednio pod kamerą). Gdy zmienisz kąt widoku, mapa będzie wyświetlana z perspektywy. Obiekty między kamerą a pozycją na mapie będą proporcjonalnie większe, a elementy wykraczające poza pozycję mapy będą proporcjonalnie mniejsze, co zapewni efekt trójwymiarowego.

Kąt wyświetlania może się mieścić w zakresie od 0 (wskazując prosto na mapie) do maksimum zależnego od poziomu powiększenia. W przypadku powiększenia na poziomie 16 lub wyższym maksymalny kąt wynosi 65 stopni. W przypadku powiększenia na poziomie 10 i niższym maksymalny kąt wynosi 30 stopni.

Ustaw kąt wyświetlania automatycznie za pomocą metody GMSCameraPosition lub GMSCameraUpdate albo metody animateToViewingAngle: o wartości 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 możesz zobaczyć na ekranie więcej szczegółów, a na mniejszych poziomach powiększenia możesz zobaczyć większy obszar świata.

Ustaw powiększenie automatycznie za pomocą GMSCameraPosition lub GMSCameraUpdate albo za pomocą metody animateToZoom:: GMSMapView.

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

Poniższy przykład wykorzystuje metodę fabryczną zoomIn: do stworzenia obiektu GMSCameraUpdate, aby animować powiększenie o jeden poziom od 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];
      

Wyznacz granice

Aby przesunąć kamerę tak, aby cały obszar zainteresowań był widoczny przy jak największym powiększeniu, ustaw granice widoku kamery. Jeśli na przykład chcesz wyświetlić wszystkie stacje benzynowe w promieniu 5 mil od bieżącej pozycji użytkownika, przesuń kamerę tak, aby były widoczne na ekranie:

  1. Oblicz GMSCoordinateBounds, która ma być widoczna na ekranie.
  2. Użyj metody cameraForBounds:insets: funkcji GMSMapView, aby zwrócić nową wartość GMSCameraPosition.

Jeśli ustawisz te granice, GMSCoordinateBounds będzie w całości pasować do rozmiaru bieżącej mapy. Pamiętaj, że ta metoda ustawia przechylenie i nośnik mapy na 0.

Poniższy przykład pokazuje, jak zmienić aparat, tak aby miasta w Vancouver i Calgary były widoczne w tym samym 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;
      

Ogranicz interakcję użytkownika do określonego obszaru

W powyższych scenariuszach możesz ustawić granice mapy, ale użytkownik będzie mógł je przewijać lub przesuwać. Zamiast tego możesz ograniczyć obszar wokół środkowej części mapy,

Na przykład aplikacja sklepu detalicznego lub centrum handlowego może ograniczyć mapę do określonych granic, tak aby użytkownicy mogli ją przewijać i przesuwać.

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

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Poniższy diagram przedstawia scenariusz, w którym cel kamery jest ograniczony do obszaru, który jest nieco większy niż widoczny obszar. Użytkownik może przewijać i przesuwać, pod warunkiem, że cel kamery znajduje się w zawężonym obszarze. Krzyż reprezentuje cel kamery:

Schemat przedstawiający granice kamery większe niż widoczny obszar.

Mapa zawsze wypełnia widoczny obszar, nawet jeśli widoczne obszary znajdują się poza zdefiniowanymi granicami. Jeśli np. ustawisz kamerę w rogu ograniczonego obszaru, obszar poza tym obszarem będzie widoczny, ale użytkownicy nie będą mogli przewijać obszaru w inne miejsce. Ten scenariusz obrazuje poniższy diagram. Krzyż reprezentuje cel kamery:

Schemat przedstawiający cel kamery umieszczony w prawym dolnym rogu granic kamery.

Na tym diagramie cel kamery ma bardzo ograniczone granice, co daje użytkownikowi bardzo mało możliwości przewijania mapy. Krzyżyk reprezentuje cel kamery:

Schemat przedstawiający granice kamery 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 GMSMapView są ustawione jako stałe.

Aby ograniczyć zakres powiększenia dostępnych na mapie, ustaw minimalny i maksymalny poziom powiększenia. Poniższy kod ogranicza poziom powiększenia do 10-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ć metodą setMinZoom:maxZoom:, ale bieżące wartości możesz odczytywać za pomocą właściwości minZoom i maxZoom. Ta metoda przydaje się przy ograniczaniu tylko jednej 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 minimalnej i maksymalnej powiększenia poziom powiększenia aparatu zostanie ustawiony na wartość spoza nowego zakresu, aktualne powiększenie zostanie automatycznie zaktualizowane, aby wyświetlić najbliższą prawidłową wartość. Na przykład w poniższym kodzie pierwotne powiększenie jest zdefiniowane jako 4. Gdy później zakres powiększenia zostanie ustawiony na 10–15, bieżące powiększenie zostanie zmienione 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];