Kamera i widok

Wybierz platformę: Android iOS JavaScript

Za pomocą pakietu Maps SDK na iOS możesz zmienić widok mapy przez użytkownika, zmieniając aparat mapy.

Dzięki pakietowi SDK Maps na iOS użytkownicy mogą przechylać i obracać mapy, aby dostosowywać je do orientacji. Użytkownicy mogą przesuwać mapę i zmieniać perspektywę przy każdym powiększeniu, nie tracąc czasu oczekiwania.

Zmiany w kamerze nie mają wpływu na znaczniki, linie łamane ani inne dodane elementy graficzne, chociaż możesz je dostosować, aby lepiej pasowały do nowego widoku.

Widok mapy

Pakiet SDK Map Google na iOS wykorzystuje odwzorowanie metryczne do reprezentowania powierzchni świata (sfery) na ekranie urządzenia (płaskiej płaszczyzny).

Pozycja kamery

Widok mapy jest modelowany jako aparat patrzący na płaską płaszczyznę. Położenie kamery (a tym samym wyświetlanie mapy) jest określane przez te właściwości: cel (szerokość/długość geograficzna), nachylenie, przechylenie i powiększenie.

Diagram właściwości aparatu

Kierowanie (lokalizacja)

Cel kamery to położenie pośrodku mapy, określane za pomocą współrzędnych 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 określenie szerokości geograficznej równą 100 spowoduje ustawienie wartości na 85. Długość geograficzna z zakresu od -180 do 180 stopni włącznie. Wartości powyżej lub poniżej tego zakresu będą zawijane, aby mieściły się w przedziale (-180, 180). Na przykład filmy 480, 840 i 1200 zostaną zawijane do 120 stopni.

Orientacja kierunkowa

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

Wartość 0 oznacza, że górna część mapy wskazuje prawdziwą północ. Wartość odchylenia 90 oznacza górną część mapy w kierunku wschodnim (90 stopni na kompasie). Wartość 180 oznacza, że górna część mapy jest skierowana na południe.

Interfejs API Map Google umożliwia zmianę kierunku mapy. Na przykład gdy samochód często obraca mapę drogową, aby dopasować ją do kierunku jazdy, a turyści korzystający z mapy i kompasu zwykle ustalają kierunek mapy tak, aby pionowa linia była skierowana na północ.

Pochylenie (kąt patrzenia)

Nachylenie określa pozycję kamery na łuku bezpośrednio nad położeniem środkowym mapy, mierzonym w stopniach od nadiru (kierunku wskazującego bezpośrednio pod kamerą). Wartość 0 odpowiada ustawieniu kamery skierowanej prosto do dołu. Wartości większe niż 0 odpowiadają aparatowi wysuniętemu w kierunku horyzontu o określoną liczbę stopni. Po zmianie kąta patrzenia mapa jest wyświetlana jako perspektywa, przy czym odległe obiekty są mniejsze, a obiekty znajdujące się w pobliżu są większe. Poniższe ilustracje to ilustrują.

Kąt widzenia na poniższych obrazach wynosi 0 stopni. Pierwsze zdjęcie przedstawia schemat. Pozycja 1 to pozycja kamery, a pozycja 2 – bieżąca pozycja na mapie. Wynikowa mapa jest wyświetlana pod nią.

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

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

Zrzut ekranu mapy z kamerą ustawioną pod kątem 45 stopni i powiększeniem 18 stopni.
Mapa wyświetlana pod kątem 45 stopni.
Schemat przedstawiający kąt patrzenia kamery ustawiony na 45 stopni przy poziomie powiększenia 18.
Kąt patrzenia kamery: 45 stopni.

Mapa na tym zrzucie ekranu jest nadal wyśrodkowana w tym samym punkcie co oryginalna mapa, ale u góry mapy pojawiły się inne obiekty. Po zwiększeniu kąta o ponad 45 stopni obiekty znajdujące się między kamerą a widokiem na mapie będą proporcjonalnie większe, a obiekty poza zasięgiem mapy będą proporcjonalnie mniejsze, dając 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 mniejszych poziomach powiększenia więcej świata jest widoczne na ekranie. Przy powiększeniu 0 skala mapy jest 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. Dlatego przy powiększeniu N szerokość świata wynosi około 256 × 2N punktów. Na przykład przy powiększeniu 2 cały świat ma około 1024 punktów szerokości.

Poziom powiększenia nie musi być liczbą całkowitą. Zakres powiększenia dozwolony przez mapę zależy od wielu czynników, m.in. celu, typu mapy i rozmiaru ekranu. Każda liczba spoza zakresu zostanie przekonwertowana na następną 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 każdym poziomie powiększenia:

  • 1: świat
  • 5: ląd/kontynent
  • 10: Miasto
  • 15: Ulice
  • 20. Budynki
Na tych obrazach pokazano wygląd różnych poziomów powiększenia:
Zrzut ekranu mapy ze powiększeniem 5
Mapa w powiększeniu 5.
Zrzut ekranu mapy ze zbliżeniem 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ątkową pozycję kamery za pomocą obiektu GMSCameraPosition, który umożliwia ustawienie szerokości i długości geograficznej celu oraz ustawienia kierunku, przechylania 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 wygodnego 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 UIView. W takim przypadku położenie kamery zaczyna się w lokalizacji domyślnej i 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 określić lokalizację, położenie, przechylanie i powiększenie. Chociaż GMSMapView udostępnia kilka metod zmiany pozycji kamery, zwykle używasz GMSCameraPosition lub GMSCameraUpdate:

  • GMSCameraPosition zawiera właściwości i metody umożliwiające zmianę każdego parametru pozycji kamery: celu, kierunku, przechylenia i powiększenia.

  • GMSCameraUpdate pozwala zmieniać cel, kierunek, przechylanie i powiększanie, a także dodatkowe, wygodne metody umożliwiające przewijanie, zaawansowane powiększanie, wyśrodkowanie kamery w zdefiniowanych granicach i nie tylko.

Gdy poruszasz kamerą, możesz ją „przypiąć” do nowej pozycji, czyli nie ma animacji. Możesz też uruchomić animację jego ruchu. Jeśli np. animujesz zmianę lokalizacji docelowej kamery, animacja zostanie przesunięta z poprzedniej lokalizacji do nowej.

Animacja interpoluje się między bieżącymi atrybutami kamery a nowymi. Czas trwania animacji możesz kontrolować za pomocą funkcji Główna animacja.

Użyj formatu: GMSCameraPosition

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

Obiekt GMSCameraPosition pozwala skonfigurować właściwości kamery, takie jak szerokość i długość geograficzna, powiększenie, kierunek i kąt patrzenia. Następnie możesz za pomocą tego obiektu 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ść GMSCameraPosition, której wartość chcesz ustawić na wartość domyślną.

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

Użyj formatu: GMSCameraUpdate

GMSCameraUpdate pozwala zmienić położenie kamery i wybrać, czy ma zostać przyciągana czy animowana. Zaletą GMSCameraUpdate jest wygoda. Za pomocą GMSCameraPosition możesz wykonywać te same zadania co GMSCameraUpdate, ale GMSCameraUpdate udostępnia dodatkowe metody pomocnicze, które ułatwiają manipulowanie kamerą.

Aby np. za pomocą funkcji GMSCameraPosition zwiększać bieżący poziom powiększenia, musisz najpierw określić bieżący poziom powiększenia, a potem utworzyć obiekt GMSCameraPosition, w którym ustawisz wartość powiększenia o 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ąć aparat do nowej pozycji, użyj metody GMSMapView moveCamera:.

W następnym przykładzie użyjesz funkcji GMSCameraUpdate, aby animować ruch kamery i wyśrodkować go 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, korzystając z jednej z jego metod.

zoomIn:zoomOut:
Zmień bieżący poziom powiększenia o 1, 0 bez zmian.
zoomTo:
Zmieni 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 przy tym określoną pozycję punktu na ekranie.
setTarget:
Zmienia szerokość i długość geograficzną kamery z zachowaniem wszystkich innych właściwości.
setTarget:zoom:
Zmień szerokość i długość geograficzną kamery oraz powiększenie, zachowując wszystkie pozostałe 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, dzięki czemu mapa wydaje się przesunąć w lewo. Dodatnia wartość y powoduje przesuwanie kamery w dół i przesuwanie mapy w górę. Przewijanie odbywa się względem bieżącego nachylenia kamery. Jeśli na przykład kamera jest ustawiona na 90 stopni, kierunek wschodni to „u góry”.
fitBounds:
Przekształca aparat w taki sposób, aby wyśrodkował na ekranie określone progi przy największym możliwym poziomie powiększenia. Stosuje domyślne dopełnienie do granic 64 punktów.
fitBounds:withPadding:
Przekształca aparat w taki sposób, aby wyśrodkował określony obszar na ekranie przy największym możliwym poziomie powiększenia. Użyj tej metody, aby określić to samo dopełnienie w punktach dla wszystkich boków ramki ograniczającej.
fitBounds:withEdgeInsets:
Przekształca aparat w taki sposób, aby wyśrodkował określony obszar na ekranie przy największym możliwym poziomie powiększenia. W przypadku funkcji UIEdgeInsets dopełnienie dla każdej strony ramki ograniczającej możesz określić niezależnie.

Aby zmienić pojedynczą usługę, użyj GMSMapView.

GMSMapView udostępnia kilka metod, które pozwalają na poruszanie kamerą bez użycia obiektu GMSCameraPosition lub GMSCameraUpdate. Za pomocą tych metod, takich jak animateToLocation: czy animateToZoom:, możesz animować zmianę jednej 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 określa się za pomocą szerokości i długości geograficznej oraz jest reprezentowane automatycznie przez atrybut CLLocationCoordinate2D utworzony za pomocą funkcji CLLocationCoordinate2DMake.

Użyj aplikacji 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, zamiast ustawiać właściwość camera, możesz użyć metody animateToCameraPosition:. 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 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 (orientacja)

Orientacja kierunkowa to kierunek kompasu mierzony w stopniach od północy rzeczywistej na górnej krawędzi mapy. Na przykład kierunek 90 stopni prowadzi do mapy, na której górna krawędź wskazuje kierunek wschodni.

Ustaw kierunek kierowania programowo za pomocą właściwości GMSCameraPosition lub GMSCameraUpdate albo metody animateToBearing: GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Ustaw pochylenie (kąt patrzenia)

Kąt widzenia to pozycja kamery na łuku między centralnym punktem mapy a powierzchnią Ziemi, mierzonym w stopniach od nadiru (kierunku skierowanego bezpośrednio pod kamerę). Po zmianie kąta patrzenia mapa wyświetla się jako perspektywa, a obiekty znajdujące się między kamerą a jej położeniem są proporcjonalnie większe, a obiekty poza tym obszarem są proporcjonalnie mniejsze, dając efekt trójwymiarowy.

Kąt patrzenia może się mieścić w zakresie od 0 (kierunek pionowy na mapie) do wartości maksymalnej zależnej od poziomu powiększenia. Zoom na poziomie 16 lub wyższym to maksymalnie 65 stopni. Zoom na poziomie 10 lub niższym maksymalny kąt to 30 stopni.

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

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw powiększenie

Poziom powiększenia kamery określa skalę mapy. Przy większym powiększeniu zobaczysz więcej szczegółów na ekranie, a przy mniejszych powiększeniach zobaczysz więcej szczegółów.

Ustawiaj powiększenie automatycznie za pomocą funkcji GMSCameraPosition lub GMSCameraUpdate albo 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 jeden 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];
      

Wyznaczanie granic

Aby przesunąć kamerę w taki sposób, aby przy największym możliwym powiększeniu widoczny był cały interesujący Cię obszar, ustaw granice widoku kamery. Jeśli na przykład chcesz wyświetlić wszystkie stacje benzynowe w promieniu pięciu kilometrów od bieżącej pozycji użytkownika, przesuń kamerę tak, by wszystkie stacje były widoczne na ekranie:

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

Ustawienie tych granic gwarantuje, że dany obiekt GMSCoordinateBounds w pełni mieści się w obrębie bieżącej mapy. Pamiętaj, że ta metoda ustawia przechylenie i kierunek mapy na 0.

Poniższy przykład pokazuje, jak zmienić aparat, aby miasta Vancouver i Calgary wyświetlały się 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 przesuwanie do określonego obszaru

Te scenariusze określają granice mapy, ale użytkownik może ją przewinąć lub przesunąć poza te granice. Możesz natomiast ograniczyć granice środka współrzędnych mapy (cel kamery), aby użytkownicy mogli tylko przewijać i przesuwać widok w tych granicach.

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

Aby ograniczyć przesuwanie do określonych granic, ustaw właściwość cameraTargetBounds obiektu GMSMapView na obiekt GMSCoordinateBounds, który określa wymagane granice. Aby później usunąć ograniczenie, ustaw 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 od widocznego obszaru. Użytkownik może przewijać i przesuwać obraz, o ile cel kamery znajduje się w wyznaczonym obszarze. Krzyż symbolizuje 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świetlenie obszarów poza zdefiniowanymi granicami. Jeśli na przykład umieścisz cel kamery w rogu ograniczonego obszaru, obszar znajdujący się poza rogiem będzie widoczny w widocznym obszarze, ale użytkownicy nie będą mogli przewijać go w górę. Scenariusz ten ilustruje ten schemat. Krzyż symbolizuje cel kamery:

Schemat przedstawiający cel kamery umieszczony w prawym dolnym rogu granic 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ż symbolizuje cel kamery:

Diagram pokazujący granice kamery 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 dla mapy, 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ć za pomocą metody setMinZoom:maxZoom:. Bieżące wartości możesz jednak odczytać, korzystając z właściwości minZoom i maxZoom. Ta metoda jest przydatna, 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 ustawisz zakres powiększenia 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];