Kamera i widok

Wybierz platformę: Android iOS JavaScript

Dzięki pakietowi Maps SDK na iOS możesz zmienić 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ć ich orientację do kontekstu. Przy dowolnym poziomie powiększenia użytkownicy mogą przesuwać mapę lub zmieniać jej perspektywę z bardzo małym opóźnieniem.

Zmiany w kamerze nie wpływają na dodane przez Ciebie znaczniki, linie wielokątów ani inne elementy graficzne, ale warto je dostosować do nowego widoku.

Widok mapy

Pakiet SDK Map na iOS używa projekcji Mercatora, aby odwzorować powierzchnię Ziemi (kulę) na ekranie urządzenia (płaskiej płaszczyźnie).

Pozycja kamery

Widok mapy jest modelowany jako kamera skierowana w dół na płaską powierzchnię. Pozycja kamery (a zatem renderowanie mapy) jest określana przez te właściwości: cel (szerokość geograficzna/długość geograficzna), kierunek, pochyleniepowiększenie.

Schemat właściwości kamery

Docelowy (lokalizacja)

Cel kamery to lokalizacja środka mapy określona przez współrzędne geograficzne.

Szerokość geograficzna może się mieścić w zakresie od -85 do 85 stopni. Wartości powyżej lub poniżej tego zakresu zostaną przycięte do najbliższej wartości w tym zakresie. Na przykład podanie szerokości geograficznej 100 spowoduje ustawienie wartości 85. Długość geograficzna może przyjmować wartości od -180 do 180 stopni włącznie. Wartości powyżej lub poniżej tego zakresu zostaną zaokrąglone tak, aby mieściły się w zakresie (-180, 180). Na przykład 480, 840 i 1200 zostaną zaokrąglone do 120 stopni.

Kierunek (orientacja)

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

Kierunek 0 oznacza, że górna część mapy wskazuje prawdziwy kierunek północny. Wartość kierunku 90 oznacza, że górna część mapy wskazuje na wschód (90 stopni na kompasie). Wartość 180 oznacza, że górna część mapy wskazuje na południe.

Interfejs Maps API umożliwia zmianę kierunku mapy. Na przykład osoba jadąca samochodem często obraca mapę drogową, aby dopasować ją do kierunku jazdy, a piechurzy korzystający z mapy i kompasu zwykle orientują mapę tak, aby linia pionowa wskazywała kierunek północny.

Przechylenie (kąt widzenia)

Pochylenie określa położenie kamery na łuku bezpośrednio nad środkiem mapy, mierzone w stopniach od nadir (kierunku wskazującego bezpośrednio pod kamerę). Wartość 0 odpowiada kamerze skierowanej w dół. Wartości większe niż 0 odpowiadają kamerze skierowanej w kierunku horyzontu o określoną liczbę stopni. Gdy zmienisz kąt widzenia, mapa będzie wyglądać w perspektywie, a elementy znajdujące się daleko będą wydawać się mniejsze, a te znajdujące się blisko – większe. Poniżej znajdziesz ilustracje obrazujące ten proces.

Na obrazach poniżej kąt widzenia wynosi 0 stopni. Pierwsze zdjęcie przedstawia schematyczną wersję tego procesu: pozycja 1 to pozycja kamery, a pozycja 2 to bieżąca pozycja na mapie. Poniżej wyświetla się mapa.

Zrzut ekranu mapy z kamerą ustawioną pod kątem 0 stopni i poziomem powiększenia 18.
Mapa wyświetlana z domyślnym kątem widzenia aparatu.
Diagram pokazujący domyślną pozycję kamery bezpośrednio nad pozycją na mapie pod kątem 0 stopni.
Domyślny kąt widzenia kamery.

Na obrazach poniżej kąt widzenia wynosi 45 stopni. Zwróć uwagę, że kamera przesuwa się o połowę łuku między pozycją na wprost nad głową (0 stopni) a pozycją na wysokości ziemi (90 stopni) do pozycji 3. Kamera nadal wskazuje środek mapy, ale obszar reprezentowany przez linię w pozycji 4 jest teraz widoczny.

Zrzut ekranu mapy z kamerą ustawioną pod kątem 45° i poziomiem powiększenia 18.
Mapa wyświetlana pod kątem 45 stopni.
Diagram pokazujący kąt widzenia kamery ustawiony na 45 stopni, a poziom powiększenia nadal na 18.
Kąt widzenia kamery 45 stopni.

Na tym zrzucie ekranu mapa jest nadal wyśrodkowana w tym samym miejscu co na oryginalnej mapie, ale u góry pojawiło się więcej funkcji. Gdy zwiększysz kąt ponad 45 stopni, elementy między kamerą a pozycją na mapie będą się wydawać proporcjonalnie większe, a elementy poza pozycją na mapie będą wydawać się proporcjonalnie mniejsze, co spowoduje efekt trójwymiarowości.

Zoom

Poziom powiększenia aparatu określa skalę mapy. Przy większym powiększeniu na ekranie widać więcej szczegółów, a przy mniejszym – więcej obszaru. 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 podwaja szerokość świata na ekranie. Dlatego przy 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 około 1024 punktów szerokości.

Poziom powiększenia nie musi być liczbą całkowitą. Zakres poziomów powiększenia dozwolonych na mapie 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ó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
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 z poziomem 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 współrzędnych geograficznych celu wraz z kierunkiem, pochyleniem i powiększeniem.

Aby ustawić początkową pozycję kamery, utwórz obiekt GMSMapViewOptions i ustaw właściwość camera na GMSCameraPosition. Następnie przekaż opcje do konstruktora ułatwiającego 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 inicjalizacji UIView. W tym przypadku pozycja kamery zaczyna się w domyślnej lokalizacji, a 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];

Zmiana pozycji kamery

Możesz programowo zmienić pozycję kamery, aby ustawić lokalizację, kierunek, przechylenie i przybliżenie. GMSMapView oferuje kilka metod zmiany pozycji kamery, ale zazwyczaj używasz GMSCameraPosition lub GMSCameraUpdate:

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

  • GMSCameraUpdate umożliwia zmianę celu, kursu, pochylenia i powiększenia. Zawiera też dodatkowe metody ułatwiające przewijanie, zaawansowane powiększanie, wyśrodkowywanie kamery w wyznaczonych granicach i inne.

Podczas przemieszczania kamery możesz „przypiąć” ją do nowej pozycji, co oznacza, że nie będzie animacji, lub możesz ją animować. Jeśli na przykład animujesz zmianę docelowej lokalizacji kamery, animacja przesunie się z wcześniejszej lokalizacji do nowej.

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

Użyj GMSCameraPosition

Aby zmienić kamerę GMSCameraPosition, utwórz nowy obiekt lub skopiuj istniejący obiekt, a potem umieść go na obiekcie GMSMapView. Użyj obiektu GMSCameraPosition, aby ustawić aparat w nowej lokalizacji z animacją lub bez niej.

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

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

Użyj GMSCameraUpdate

GMSCameraUpdate pozwala zaktualizować pozycję kamery i wybrać, czy ma ona być dopasowana do nowej pozycji, czy też ma się do niej animować. 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ą manipulowanie kamerą.

Aby na przykład użyć obiektu GMSCameraPosition do zwiększenia bieżącego poziomu powiększenia, musisz najpierw określić bieżący poziom powiększenia, a potem utworzyć obiekt GMSCameraPosition, w którym ustawisz powiększenie o jedną wartość 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 przypiąć aparat w nowej pozycji.

W następnym przykładzie użyjesz GMSCameraUpdate, aby animować ruch kamery i umieścić ją na środku 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, korzystając z jednej z jego metod.

zoomIn:zoomOut:
Zmień bieżący poziom powiększenia o 1,0, zachowując wszystkie inne właściwości.
zoomTo:
Zmienia poziom powiększenia na podana 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 daną wartość.
zoomBy:atPoint:
Zwiększa (lub zmniejsza, jeśli wartość jest ujemna) poziom powiększenia o podaną wartość, zachowując pozycję wskazanego punktu na ekranie.
setTarget:
Zmienia szerokość i długość geograficzną kamery, zachowując wszystkie inne właściwości.
setTarget:zoom:
Zmienia szerokość geograficzną, długość geograficzną i przybliżenie kamery, zachowując wszystkie inne właściwości.
setCamera:
Ustawia nową wartość 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, przez co mapa wydaje się przesuwać w lewo. Dodatnia wartość y powoduje przesunięcie kamery w dół, przez co mapa wydaje się przesunięta w górę. Przewijanie odbywa się względem bieżącego kierunku kamery. Jeśli na przykład kamera ma kierunek 90 stopni, wschodnia strona jest „górą”.
fitBounds:
Przekształca kamerę tak, aby wskazane granice były wyśrodkowane na ekranie przy największym możliwym poziomie powiększenia. Domyślnie stosuje wypełnienie o szerokości 64 punktów.
fitBounds:withPadding:
Przekształca kamerę, aby wyśrodkować określone zasięgi na ekranie przy największym możliwym poziomie powiększenia. Użyj tej metody, aby określić tę samą wartość marginesu w punktach dla wszystkich stron ogranicznika.
fitBounds:withEdgeInsets:
Przekształca kamerę, aby wyśrodkować określone zasięgi na ekranie przy największym możliwym poziomie powiększenia. W przypadku UIEdgeInsets możesz niezależnie określać odstępy po każdej stronie ramki ograniczającej.

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

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

Aby na przykład animować zmianę pochylenia kamery, użyj metody toViewingAngle:.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustawianie celu (lokalizacji)

Lokalizacja określa środek mapy. Lokalizacje są określane za pomocą szerokości i długości geograficznej oraz reprezentowane programowo przez obiekt CLLocationCoordinate2D utworzony za pomocą funkcji CLLocationCoordinate2DMake.

Aby zmienić lokalizację, użyj opcji GMSCameraPosition. W tym przykładzie mapa przesuwa 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 przypadku 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 przesuwać 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 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ę)

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

Ustaw kierunek za pomocą funkcji GMSCameraPosition lub GMSCameraUpdate lub za pomocą metody animateToBearing: klasy GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Ustaw pochylenie (kąt widzenia)

Kąt widzenia to położenie kamery na łuku między położeniem bezpośrednio nad środkiem mapy a powierzchnią Ziemi, mierzone w stopniach od zenitu (kierunku wskazywanego bezpośrednio pod kamerą). Gdy zmienisz kąt widzenia, mapa będzie wyświetlana w perspektywie, a elementy między kamerą a pozycją na mapie będą wyglądać proporcjonalnie większe, a elementy poza pozycją na mapie będą proporcjonalnie mniejsze, co spowoduje efekt trójwymiarowości.

Kąt widzenia może wynosić od 0 (wskazówka skierowana wprost na mapę) do maksymalnego poziomu zależnego od poziomu powiększenia. W przypadku poziomu powiększenia 16 lub wyższego maksymalny kąt to 65 stopni. W przypadku poziomu powiększenia 10 lub niższego maksymalny kąt to 30 stopni.

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

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ustaw powiększenie

Poziom powiększenia aparatu określa skalę mapy. Przy większych poziomach powiększenia możesz zobaczyć więcej szczegółów na ekranie, a przy mniejszych – więcej świata.

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

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

W tym przykładzie metoda zoomIn: służy do tworzenia obiektu GMSCameraUpdate, aby animować powiększanie 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, który Cię interesuje, był widoczny przy największym możliwym powiększeniu, ustaw granice widoku kamery. Jeśli na przykład chcesz wyświetlić wszystkie stacje benzynowe w odległości 8 km od bieżącej pozycji użytkownika, przesuń kamerę, aby wszystkie były widoczne na ekranie:

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

Ustawienie tych granic zapewnia, że dany element GMSCoordinateBounds mieści się całkowicie w ramach bieżącego rozmiaru mapy. Pamiętaj, że ta metoda ustawia pochylenie i kierunek mapy na 0.

W tym przykładzie pokazujemy, 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;
      

ograniczyć przesuwanie przez użytkownika do określonego obszaru,

W tych scenariuszach określane są granice mapy, ale użytkownik może przewijać lub przesuwać widok poza te granice. Zamiast tego możesz ograniczyć zakres współrzędnych środka punktu skupienia mapy (celu kamery), aby użytkownicy mogli przewijać i przesuwać tylko w tych granicach.

Na przykład aplikacja sklepu w centrum handlowym lub na lotnisku może ograniczać 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 definiuje wymagane granice. Aby później usunąć ograniczenie, ustaw wartość cameraTargetBounds na 0.

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Ten diagram przedstawia sytuację, w której cel kamery jest ograniczony do obszaru nieco większego niż widoczny obszar. Użytkownik może przewijać i przesuwać obraz, o ile obiektyw kamery pozostaje w ograniczonym obszarze. Krzyżyk oznacza cel kamery:

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

Mapa zawsze wypełnia widoczny obszar, nawet jeśli oznacza to, że widoczny obszar obejmuje obszary poza zdefiniowanymi granicami. Jeśli na przykład umieścisz punkt docelowy kamery w rogu ograniczonego obszaru, obszar za rogiem będzie widoczny w widocznym obszarze, ale użytkownicy nie będą mogli przewinąć dalej w tym kierunku. Ten diagram przedstawia ten scenariusz. Krzyż oznacza cel kamery:

Diagram pokazujący cel kamery umieszczony w prawym dolnym rogu jej zasięgu

Na diagramie poniżej widać, że obszar docelowy kamery ma bardzo ograniczone granice, co daje użytkownikowi niewielką możliwość przewijania lub przesuwania mapy. Krzyżyk oznacza cel kamery:

Diagram pokazujący granice kamery, które są mniejsze niż widok.

Ustawianie minimalnego lub maksymalnego powiększenia

Stałe globalne kGMSMinZoomLevelkGMSMaxZoomLevel definiują minimalne lub maksymalne wartości powiększenia. Domyślnie właściwości minZoommaxZoom 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 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:, ale bieżące wartości możesz odczytać za pomocą właściwości minZoommaxZoom. To podejście jest przydatne, gdy chcesz ograniczyć tylko jedną z tych 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 aparatu jest 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 oryginalny zoom jest zdefiniowany jako 4. Gdy zakres zoomu zostanie później ustawiony na 10–15, bieżący zoom zostanie zaktualizowany do 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];