Kamera i widok

Wybierz platformę: Android iOS JavaScript

Dzięki pakietowi Maps SDK na iOS możesz zmieniać punkt widzenia użytkownika na mapie, zmieniając kamerę mapy.

Dzięki pakietowi Maps SDK na iOS użytkownicy mogą przechylać i obracać mapy, aby dostosować je do orientacji przydatnej w danym kontekście. Na każdym poziomie powiększenia użytkownicy mogą przesuwać mapę lub zmieniać jej perspektywę z bardzo małym opóźnieniem.

Zmiany kamery nie wpływają na znaczniki, linie łamane ani inne dodane przez Ciebie elementy graficzne, ale możesz je zmienić, aby lepiej pasowały do nowego widoku.

Widok mapy

Pakiet Maps SDK na iOS używa odwzorowania walcowego równokątnego, aby przedstawić powierzchnię świata (kulę) na ekranie urządzenia (płaskiej powierzchni).

Pozycja kamery

Widok mapy jest modelowany jako kamera skierowana w dół na płaską powierzchnię. Położenie kamery (a tym samym renderowanie mapy) określają te właściwości: cel (szerokość i długość geograficzna), orientacja, nachylenie i powiększenie.

Schemat właściwości aparatu

Cel (lokalizacja)

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

Szerokość geograficzna może wynosić od –85 do 85 stopni. Wartości powyżej lub poniżej tego zakresu zostaną zmienione na najbliższą wartość z tego zakresu. Jeśli na przykład podasz szerokość geograficzną 100, wartość zostanie ustawiona na 85. Długość geograficzna mieści się w zakresie od -180 do 180 stopni włącznie. Wartości spoza tego zakresu zostaną przekształcone tak, aby mieściły się w zakresie (-180, 180). Na przykład 480, 840 i 1200 zostaną zawinięte do 120 stopni.

Kierunek (orientacja)

Kierunek kamery określa kierunek kompasu, mierzony w stopniach od północy geograficznej, odpowiadający górnej krawędzi mapy. Jeśli narysujesz pionową linię od środka mapy do jej górnej krawędzi, namiar odpowiada kierunkowi kamery (mierzonemu w stopniach) względem północy geograficznej.

Wartość 0 oznacza, że góra mapy wskazuje północ geograficzną. Wartość 90 oznacza, że góra mapy wskazuje wschód (90 stopni na kompasie). Wartość 180 oznacza, że góra mapy jest skierowana na południe.

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

Pochylenie (kąt widzenia)

Nachylenie określa pozycję kamery na łuku bezpośrednio nad środkiem mapy, mierzoną w stopniach od nadiru (kierunku bezpośrednio pod kamerą). Wartość 0 odpowiada kamerze skierowanej prosto w dół. Wartości większe niż 0 odpowiadają kamerze pochylonej w kierunku horyzontu o określoną liczbę stopni. Gdy zmienisz kąt widzenia, mapa będzie wyświetlana w perspektywie, z odległymi obiektami mniejszymi, a bliższymi – większymi. Ilustracje poniżej pokazują, jak to działa.

Na obrazach poniżej kąt widzenia wynosi 0 stopni. Pierwszy obraz przedstawia schemat tego rozwiązania: pozycja 1 to pozycja kamery, a pozycja 2 to bieżąca pozycja na mapie. Poniżej znajduje się mapa, która powstała w wyniku tego zapytania.

Zrzut ekranu mapy z kamerą ustawioną pod kątem widzenia 0 stopni i poziomem powiększenia 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 obrazach poniżej kąt widzenia wynosi 45 stopni. Zauważ, że kamera przesuwa się do połowy łuku między pozycją bezpośrednio nad głową (0 stopni) a ziemią (90 stopni) do pozycji 3. Kamera nadal jest skierowana na punkt środkowy mapy, ale obszar reprezentowany przez linię w pozycji 4 jest teraz widoczny.

Zrzut ekranu mapy z kamerą ustawioną pod kątem 45 stopni i poziomem powiększenia 18.
Mapa wyświetlana pod kątem 45 stopni.
Diagram przedstawiający kąt widzenia kamery ustawiony na 45 stopni i poziom powiększenia ustawiony na 18.
Kąt widzenia kamery wynosi 45 stopni.

Mapa na tym zrzucie ekranu jest nadal wyśrodkowana na tym samym punkcie co oryginalna mapa, ale u góry mapy pojawiło się więcej funkcji. Gdy zwiększysz kąt powyżej 45 stopni, elementy między kamerą a pozycją mapy będą wydawać się proporcjonalnie większe, a elementy poza pozycją mapy – proporcjonalnie mniejsze, co da efekt trójwymiarowości.

Zoom

Poziom powiększenia kamery określa skalę mapy. Przy większych poziomach powiększenia na ekranie widać więcej szczegółów, a przy mniejszych – większy obszar świata. Na 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 świata na ekranie. Dlatego na poziomie powiększenia N szerokość świata wynosi około 256 * 2N punktów. Na przykład przy poziomie powiększenia 2 cały świat ma szerokość około 1024 punktów.

Poziom powiększenia nie musi być liczbą całkowitą. Zakres poziomów powiększenia dozwolonych przez mapę zależy od wielu czynników, w tym od celu, typu mapy i rozmiaru ekranu. Każda liczba spoza zakresu zostanie przekonwertowana na najbliższą prawidłową wartość, którą może być minimalny lub maksymalny poziom powiększenia. Poniższa lista zawiera przybliżony poziom szczegółowości, którego możesz się spodziewać na każdym poziomie powiększenia:

  • 1: Świat
  • 5. Ląd/kontynent
  • 10: miasto,
  • 15: Ulice
  • 20: Budynki
Na poniższych obrazach widać, jak wyglądają różne poziomy powiększenia:
Zrzut ekranu mapy z poziomem powiększenia 5
Mapa na poziomie powiększenia 5.
Zrzut ekranu mapy przy poziomie powiększenia 15
Mapa z poziomem powiększenia 15.
Zrzut ekranu mapy na poziomie powiększenia 20
Mapa na poziomie powiększenia 20.

Ustawianie początkowej pozycji 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, nachylenia i powiększenia.

Aby ustawić początkową pozycję kamery, utwórz obiekt GMSMapViewOptions i ustaw właściwość camera na GMSCameraPosition. Następnie przekaż opcje do konstruktora 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];

Możesz też utworzyć obiekt GMSMapView, używając domyślnej metody inicjowania UIView. W tym przypadku pozycja kamery zaczyna się w domyślnej lokalizacji, a po utworzeniu możesz ją zmienić.

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];

Zmienianie pozycji kamery

Możesz automatycznie zmieniać pozycję kamery, aby ustawić lokalizację, kierunek, nachylenie i powiększenie. GMSMapView udostępnia kilka metod, których możesz użyć do zmiany pozycji kamery, ale zwykle używa się GMSCameraPosition lub GMSCameraUpdate:

  • GMSCameraPosition zawiera właściwości i metody, których używasz do zmiany każdego parametru pozycji kamery: celu, kierunku, nachylenia i powiększenia.

  • GMSCameraUpdate umożliwia zmianę celu, kierunku, nachylenia i powiększenia, a także zawiera dodatkowe metody ułatwiające przewijanie, zaawansowane powiększanie, centrowanie kamery w zdefiniowanych granicach i inne czynności.

Podczas przesuwania kamery możesz wybrać opcję „przyciągania” kamery do nowej pozycji, co oznacza, że nie będzie animacji, lub animowania ruchu. Jeśli na przykład animujesz zmianę lokalizacji docelowej kamery, animacja będzie przesuwać się od wcześniejszej lokalizacji do nowej.

Animacja interpoluje między bieżącymi i nowymi atrybutami kamery. Czas trwania animacji możesz kontrolować za pomocą Core Animation.

Otwórz GMSCameraPosition

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

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

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

Otwórz GMSCameraUpdate

GMSCameraUpdate umożliwia aktualizowanie pozycji kamery i wybieranie, czy ma ona przeskoczyć, czy przejść do nowej pozycji. Zaletą 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ą sterowanie kamerą.

Jeśli na przykład chcesz użyć metody GMSCameraPosition, aby zwiększyć bieżący poziom powiększenia, musisz najpierw określić bieżący poziom powiększenia, a następnie utworzyć obiekt GMSCameraPosition, w którym ustawisz powiększenie na wartość o 1 większą niż bieżące powiększenie.

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];
      

Zamiast tego użyj metody GMSMapView moveCamera:, aby ustawić kamerę w nowej pozycji.

W następnym przykładzie użyjesz GMSCameraUpdate, aby animować ruch kamery i wyśrodkować ją 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

Utwórz obiekt GMSCameraUpdate, używając jednej z jego metod.

zoomIn: i zoomOut:
Zmień bieżący poziom powiększenia o 1,0, zachowując wszystkie pozostałe właściwości bez zmian.
zoomTo:
Zmienia poziom powiększenia na podaną wartość, zachowując wszystkie pozostałe właściwości.
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ść, zachowując pozycję określonego punktu na ekranie.
setTarget:
Zmienia szerokość i długość geograficzną kamery, zachowując wszystkie pozostałe właściwości.
setTarget:zoom:
Zmienia szerokość i długość geograficzną oraz powiększenie kamery, zachowując wszystkie pozostałe właściwości.
setCamera:
Ustawia nowy GMSCameraPosition.
scrollByX:Y:
Zmienia szerokość i długość geograficzną kamery, aby przesunąć mapę o określoną liczbę punktów. Dodatnia wartość x powoduje przesunięcie kamery w prawo, co sprawia, że mapa wydaje się przesunięta w lewo. Dodatnia wartość y powoduje przesunięcie kamery w dół, co sprawia, że mapa wydaje się przesunięta w górę. Przewijanie jest powiązane z bieżącym kierunkiem kamery. Jeśli na przykład kamera ma kąt 90 stopni, wschód jest „w górę”.
fitBounds:
Przekształca kamerę, 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ę, 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 stron ramki ograniczającej.
fitBounds:withEdgeInsets:
Przekształca kamerę, aby wyśrodkować określone granice na ekranie przy największym możliwym poziomie powiększenia. Za pomocą UIEdgeInsets możesz określić dopełnienie dla każdej strony ramki ograniczającej niezależnie.

Używanie GMSMapView do zmiany pojedynczej właściwości

GMSMapView udostępnia kilka metod, które umożliwiają przesuwanie kamery bez użycia obiektu GMSCameraPosition lub GMSCameraUpdate. Dzięki tym metodom, takim 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ę nachylenia 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ą oraz reprezentowane automatycznie przez obiekt CLLocationCoordinate2D utworzony za pomocą CLLocationCoordinate2DMake.

Aby zmienić lokalizację, użyj GMSCameraPosition. W tym przykładzie mapa przeskakuje 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, o jaką kamera ma się przesunąć 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];
      

Ustawianie kierunku (orientacji)

Azymut to kierunek kompasu mierzony w stopniach od północy geograficznej dla górnej krawędzi mapy. Na przykład kierunek 90 stopni powoduje, że górna krawędź mapy wskazuje wschód.

Ustaw kierunek programowo za pomocą GMSCameraPosition lub GMSCameraUpdate albo metody animateToBearing: w GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Ustawianie pochylenia (kąta widzenia)

Kąt widzenia to pozycja kamery na łuku między punktem bezpośrednio nad środkiem mapy a powierzchnią Ziemi, mierzona w stopniach od nadira (kierunku bezpośrednio pod kamerą). Gdy zmienisz kąt widzenia, mapa pojawi się w perspektywie, a elementy między kamerą a pozycją mapy będą proporcjonalnie większe, natomiast elementy poza pozycją mapy będą proporcjonalnie mniejsze, co da efekt trójwymiarowy.

Kąt widzenia może wynosić od 0 (patrzenie prosto w dół na mapę) do maksymalnej wartości zależnej od poziomu powiększenia. W przypadku poziomu powiększenia 16 lub wyższego maksymalny kąt wynosi 65 stopni. W przypadku poziomu powiększenia 10 lub mniejszego maksymalny kąt wynosi 30 stopni.

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

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw powiększenie

Poziom powiększenia kamery określa skalę mapy. Przy większych poziomach powiększenia na ekranie widać więcej szczegółów, a przy mniejszych – większy obszar.

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

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

W tym przykładzie użyto metody zoomIn: do utworzenia obiektu GMSCameraUpdate, który animuje powiększenie o 1 poziom w stosunku do 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 interesujący Cię obszar był widoczny przy największym możliwym poziomie powiększenia, ustaw granice widoku kamery. Jeśli na przykład chcesz wyświetlić wszystkie stacje benzynowe w promieniu 8 kilometrów od bieżącej pozycji użytkownika, przesuń kamerę tak, aby wszystkie były widoczne na ekranie:

  1. Oblicz GMSCoordinateBounds, które chcesz wyświetlać na ekranie.
  2. Użyj metody cameraForBounds:insets: obiektu GMSMapView, aby zwrócić nowy obiekt GMSCameraPosition.

Ustaw te granice tak, aby dany obiekt GMSCoordinateBounds mieścił się całkowicie w bieżącym rozmiarze mapy. Pamiętaj, że ta metoda ustawia nachylenie i orientację mapy na 0.

Poniższy przykład pokazuje, jak zmienić kamerę, aby miasta 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;
      

Ograniczanie przesuwania mapy przez użytkownika do określonego obszaru

Te scenariusze określają granice mapy, ale użytkownik może przewijać lub przesuwać mapę poza te granice. Zamiast tego możesz ograniczyć współrzędne środka punktu skupienia mapy (celu kamery), aby użytkownicy mogli przewijać i przesuwać tylko w tych granicach.

Na przykład aplikacja dla centrum handlowego lub lotniska może ograniczać mapę do określonych granic, umożliwiając użytkownikom przewijanie i przesuwanie w tych granicach.

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

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Na diagramie poniżej przedstawiono sytuację, w której cel kamery jest ograniczony do obszaru nieco większego niż widoczny obszar. Użytkownik może przewijać i przesuwać widok, o ile cel kamery pozostaje w ograniczonym obszarze. Krzyżyk reprezentuje cel kamery:

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

Mapa zawsze wypełnia widoczny obszar, nawet jeśli powoduje to wyświetlanie obszarów poza zdefiniowanymi granicami. Jeśli na przykład umieścisz cel kamery w rogu ograniczonego obszaru, obszar poza rogiem będzie widoczny w widocznym obszarze, ale użytkownicy nie będą mogli przewijać dalej w tym obszarze. Ten scenariusz ilustruje poniższy diagram. Krzyżyk reprezentuje cel kamery:

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

Na diagramie poniżej cel kamery ma bardzo ograniczone granice, co daje użytkownikowi bardzo mało możliwości przewijania lub przesuwania mapy. Krzyżyk wskazuje cel kamery:

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

Ustawianie minimalnego lub maksymalnego powiększenia

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

Aby ograniczyć zakres poziomów powiększenia dostępnych na mapie, ustaw minimalny i maksymalny poziom powiększenia. Poniższy kod ogranicza poziom powiększenia do zakresu od 10 do 15.

Swift

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

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887
                                                       longitude:-87.622
                                                             zoom:12];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
[mapView setMinZoom:10 maxZoom:15];
      

Zakres powiększenia musisz ustawić za pomocą metody setMinZoom:maxZoom:, ale bieżące wartości możesz odczytać za pomocą właściwości minZoom i maxZoom. To podejście jest przydatne, gdy ograniczasz tylko jedną z wartości. Poniższy 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 minimalnego i maksymalnego powiększenia poziom powiększenia kamery zostanie ustawiony na wartość spoza nowego zakresu, bieżące 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 zakres powiększenia zostanie później ustawiony na 10–15, bieżące powiększenie zostanie zaktualizowane do 10.

Swift

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

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

Objective-C

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