Kamera dan tampilan

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Pilih platform: Android iOS JavaScript

Maps SDK for iOS memungkinkan Anda mengubah sudut pandang pengguna peta dengan memodifikasi kamera peta.

Maps yang ditambahkan dengan Maps SDK for iOS dapat dimiringkan dan diputar, sehingga pengguna dapat menyesuaikan peta dengan orientasi yang mereka inginkan. Pada tingkat zoom apa pun, Anda dapat menggeser peta, atau mengubah perspektifnya dengan latensi sangat kecil.

Perubahan pada kamera tidak akan berpengaruh pada penanda, polyline, atau grafik lain yang telah ditambahkan, walaupun Anda mungkin perlu mengubah penambahan tersebut agar lebih cocok dengan tampilan baru.

Tampilan peta

Maps SDK for iOS mewakili permukaan dunia (bola dunia) pada layar perangkat (bidang datar) perangkat Anda menggunakan proyeksi Mercator. Di arah timur dan barat, peta ini diulangi tanpa henti karena bumi berputar terus-menerus. Di arah utara dan selatan, peta dibatasi hingga sekitar 85 derajat utara dan 85 derajat selatan.

Posisi kamera

Tampilan peta ini dimodelkan sebagai kamera yang sedang mengarah ke bawah pada bidang datar. Posisi kamera (dan rendering peta) ditetapkan oleh properti berikut: target (lokasi lintang/bujur), bearing, kemiringan, dan zoom.

Diagram properti kamera

Target (lokasi)

Target kamera adalah lokasi pusat peta, yang ditetapkan sebagai koordinat lintang dan bujur.

Garis lintang berkisar antara -85 dan 85 derajat, inklusif. Nilai di atas atau di bawah rentang ini akan dibulatkan ke nilai terdekat dalam rentang ini. Misalnya, menetapkan garis lintang 100 akan menyetel nilainya ke 85. Rentang bujur antara -180 dan 180 derajat, inklusif. Nilai di atas atau di bawah rentang ini akan dibulatkan agar berada dalam rentang (-180, 180). Misalnya, 480, 840, dan 1200 semuanya akan dibulatkan ke 120 derajat.

Bearing (orientasi)

Bearing kamera menentukan arah kompas, yang diukur dalam derajat dari utara sejati, dan sesuai dengan tepi atas peta. Jika Anda menggambar garis vertikal dari tengah peta ke tepi atas peta, bearing akan sesuai dengan heading kamera (diukur dalam derajat) secara relatif terhadap utara sejati.

Bearing 0 berarti bagian atas peta menunjuk ke utara sejati. Nilai bearing 90 berarti bagian atas peta menunjuk ke timur (90 derajat pada kompas). Nilai 180 berarti bagian atas peta menunjuk ke selatan.

Maps API memungkinkan Anda mengubah bearing peta. Misalnya, orang yang mengemudikan mobil sering memutar peta jalan untuk menyesuaikannya dengan arah perjalanan mereka, sedangkan pejalan kaki yang menggunakan peta dan kompas biasanya mengarahkan peta agar garis vertikal menunjuk ke utara.

Kemiringan (sudut pandang)

Kemiringan menentukan posisi kamera pada busur yang berada tepat di atas posisi tengah peta, yang diukur dalam derajat dari titik nadir (arah yang menunjuk langsung ke bawah kamera). Nilai 0 berarti kamera mengarah tepat ke bawah. Nilai yang lebih besar dari 0 berarti kamera miring ke arah cakrawala sebesar jumlah derajat yang ditentukan. Jika Anda mengubah sudut pandang, peta akan muncul dalam perspektif, dengan fitur jauh terlihat lebih kecil, dan fitur dekat terlihat lebih besar. Ilustrasi berikut menunjukkan situasi ini.

Dalam gambar di bawah ini, sudut pandang adalah 0 derajat. Gambar pertama menampilkan skema ini; posisi 1 adalah posisi kamera, dan posisi 2 adalah posisi peta saat ini. Peta hasilnya ditampilkan di bawah ini.

Screenshot peta dengan kamera diposisikan pada sudut pandang 0 derajat, pada tingkat zoom 18.
Peta ditampilkan dengan sudut pandang default kamera.
Diagram yang menampilkan posisi default kamera, langsung di atas posisi peta, pada sudut 0 derajat.
Sudut pandang default kamera.

Dalam gambar di bawah ini, sudut pandang adalah 45 derajat. Perhatikan bahwa kamera bergerak sepanjang setengah busur antara garis lurus ke atas (0 derajat) dan garis tanah (90 derajat), ke posisi 3. Kamera masih menunjuk ke titik tengah peta, tetapi area yang dinyatakan oleh garis pada posisi 4 sekarang terlihat.

Screenshot peta dengan kamera diposisikan pada sudut pandang 45 derajat, pada tingkat zoom 18.
Peta ditampilkan dengan sudut pandang 45 derajat.
Diagram yang menunjukkan sudut pandang kamera disetel ke 45 derajat, dengan tingkat zoom masih ditetapkan ke 18.
Sudut tampilan kamera 45 derajat.

Peta dalam screenshot ini tetap ditengahkan pada titik yang sama dengan peta asal, namun semakin banyak fitur yang muncul di bagian atas peta. Begitu Anda menaikkan sudut di atas 45 derajat, fitur antara kamera dan posisi peta akan tampak lebih besar secara proporsional, sedangkan fitur di luar posisi peta akan tampak lebih kecil secara proporsional, sehingga menghasilkan efek tiga dimensi.

Zoom

Tingkat zoom kamera menentukan skala peta. Pada tingkat zoom yang lebih besar, tampilan di layar akan lebih detail, sedangkan pada tingkat zoom yang lebih kecil, semakin luas bagian dunia yang bisa dilihat di layar. Pada tingkat zoom 0, skala peta diatur sedemikian rupa agar seluruh dunia memiliki lebar sekitar 256 titik.

Menambah tingkat zoom sebanyak 1 akan menggandakan lebar dunia pada layar. Oleh karena itu, pada tingkat zoom N, lebar dunia adalah sekitar 256 * 2N titik. Misalnya, pada tingkat zoom 2, lebar keseluruhan dunia adalah sekitar 1024 poin.

Tingkat zoom tidak perlu berupa bilangan bulat. Rentang tingkat zoom yang diizinkan oleh peta bergantung pada sejumlah faktor termasuk target, jenis peta, dan ukuran layar. Angka di luar rentang akan dikonversi ke nilai valid terdekat berikutnya yang bisa berupa tingkat zoom minimum atau tingkat zoom maksimum. Daftar berikut menampilkan perkiraan tingkat detail yang akan Anda lihat di setiap tingkat zoom:

  • 1: Dunia
  • 5: Daratan luas/benua
  • 10: Kota
  • 15: Jalan
  • 20: Bangunan
Gambar berikut menampilkan tampilan visual dari tingkat zoom yang berbeda-beda:
Screenshot peta pada tingkat zoom 5
Peta pada tingkat zoom 5.
Screenshot peta pada tingkat zoom 15
Peta pada tingkat zoom 15.
Screenshot peta pada tingkat zoom 20
Peta pada tingkat zoom 20.

Menyetel posisi kamera awal

Posisi kamera direpresentasikan oleh objek GMSCameraPosition. Buat objek GMSCameraPosition untuk menetapkan lintang dan bujur target, serta untuk menetapkan bearing, kemiringan, dan zoom.

Untuk menetapkan posisi kamera awal, buat objek GMSCameraPosition, lalu teruskan objek tersebut ke konstruktor 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];
      

Anda juga dapat membuat objek GMSMapView menggunakan metode init UIView default. Dalam hal ini, posisi kamera dimulai pada lokasi default dan Anda dapat mengubahnya setelah pembuatan.

Swift

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

Objective-C

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

Mengubah posisi kamera

Anda dapat mengubah posisi kamera secara terprogram untuk menetapkan lokasi, arah, kemiringan, dan zoom. Meskipun GMSMapView menyediakan beberapa metode yang dapat Anda gunakan untuk mengubah posisi kamera, biasanya Anda menggunakan GMSCameraPosition atau GMSCameraUpdate:

  • GMSCameraPosition berisi properti dan metode yang memungkinkan Anda mengubah semua parameter posisi kamera, termasuk target, bearing, kemiringan, dan zoom.

  • GMSCameraUpdate memungkinkan Anda mengubah target, bearing, kemiringan, dan zoom, serta berisi metode praktis tambahan untuk mendukung scroll, zoom lanjutan, pemusatan kamera dalam batas yang telah ditentukan, dan lainnya.

Saat memindahkan kamera, Anda dapat memilih untuk "menangkap" kamera ke posisi baru, yang berarti tidak ada animasi, atau menganimasikannya. Misalnya, jika Anda menganimasikan perubahan lokasi target kamera, animasi akan bergeser dari lokasi lama ke lokasi baru.

Animasi disisipkan di antara atribut kamera saat ini dan atribut kamera baru. Anda dapat mengontrol durasi animasi menggunakan Core Animation.

Gunakan GMSCameraPosition

Untuk memodifikasi kamera menggunakan GMSCameraPosition, buat objek baru atau salin objek yang ada, lalu tetapkan pada objek GMSMapView. Gunakan objek GMSCameraPosition untuk mengambil gambar kamera ke lokasi baru tanpa animasi atau untuk menganimasikan pemindahan.

Gunakan objek GMSCameraPosition untuk mengonfigurasi properti kamera seperti lintang, bujur, zoom, bearing, dan sudut pandang. Anda kemudian menggunakan objek tersebut untuk menetapkan properti camera dari 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];
      

Hapus semua properti GMSCameraPosition yang ingin Anda tetapkan ke nilai defaultnya.

Untuk menganimasikan pemindahan, gunakan metode animateToCameraPosition:, bukan menetapkan properti camera.

Gunakan GMSCameraUpdate

GMSCameraUpdate memungkinkan Anda memperbarui posisi kamera dan memilih apakah akan masuk ke atau bergerak ke posisi baru. Keuntungan GMSCameraUpdate adalah kemudahan. Anda dapat menggunakan GMSCameraPosition untuk melakukan tugas yang sama seperti GMSCameraUpdate, tetapi GMSCameraUpdate menyediakan metode bantuan tambahan untuk mempermudah memanipulasi kamera.

Misalnya, untuk menggunakan GMSCameraPosition guna meningkatkan tingkat zoom saat ini, Anda harus menentukan tingkat zoom saat ini terlebih dahulu, lalu buat objek GMSCameraPosition tempat Anda menetapkan zoom ke nilai yang lebih besar dari zoom saat ini.

Atau, buat objek GMSCameraUpdate menggunakan metode factory zoomIn:. Kemudian perbarui kamera dengan meneruskan objek GMSCameraUpdate ke metode 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];
      

Gunakan metode moveCamera: GMSMapView untuk mengambil kamera ke posisi baru sebagai gantinya.

Pada contoh berikutnya, Anda menggunakan GMSCameraUpdate untuk menganimasikan gerakan kamera untuk memusatkannya di 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];
      

Membuat objek GMSCameraUpdate

Buat objek GMSCameraUpdate dengan menggunakan salah satu metode factory-nya.

zoomIn: dan zoomOut:
Ubah tingkat zoom saat ini ke 1.0, dengan tetap mempertahankan semua properti lainnya.
zoomTo:
Mengubah tingkat zoom ke nilai yang diberikan dengan tetap mempertahankan semua properti lainnya pada tingkat yang sama.
zoomBy:
Menaikkan (atau menurunkan, jika nilainya negatif) tingkat zoom sebesar nilai yang diberikan.
zoomBy:atPoint:
Menaikkan (atau menurunkan, jika nilainya negatif) tingkat zoom sebesar nilai yang diberikan, dengan mempertahankan posisi titik yang ditentukan pada layar.
setTarget:
Mengubah lintang dan bujur kamera, sekaligus mempertahankan semua properti lainnya.
setTarget:zoom:
Mengubah lintang, bujur, dan zoom kamera, sekaligus mempertahankan semua properti lainnya.
setCamera:
Memungkinkan Anda menentukan GMSCameraPosition baru.
scrollByX:Y:
Mengubah lintang dan bujur kamera sehingga peta bergerak sebesar jumlah titik yang ditentukan. Nilai x positif menyebabkan kamera bergerak ke kanan, sehingga peta tampak bergerak ke kiri. Nilai y positif menyebabkan kamera bergerak ke bawah, sehingga peta tampak bergerak ke atas. Scrolling relatif terhadap arah kamera saat ini. Misalnya, jika kamera memiliki bearing 90 derajat, maka timur adalah "up".
fitBounds:
Mentransformasi kamera sehingga batas yang ditentukan berada di tengah layar dengan tingkat zoom tertinggi. Menerapkan padding default pada batas 64 titik.
fitBounds:withPadding:
Mentransformasi kamera sehingga batas yang ditentukan berada di tengah layar pada tingkat zoom tertinggi. Memungkinkan Anda menentukan padding kustom, dalam titik, untuk kotak pembatas. Gunakan metode ini saat Anda ingin memiliki padding yang sama di semua sisi.
fitBounds:withEdgeInsets:
Mentransformasi kamera sehingga batas yang ditentukan berada di tengah layar pada tingkat zoom tertinggi. Memungkinkan Anda menentukan padding kustom, sebagai UIEdgeInsets, untuk kotak pembatas. Gunakan metode ini saat Anda ingin menyetel padding di setiap tepi secara independen.

Gunakan GMSMapView untuk mengubah satu properti

GMSMapView menyediakan beberapa metode yang memungkinkan Anda memindahkan kamera tanpa penggunaan objek GMSCameraPosition atau objek GMSCameraUpdate. Metode ini, seperti animateToLocation: atau animateToZoom: memungkinkan Anda menganimasikan perubahan pada satu properti kamera.

Misalnya, gunakan metode toViewingAngle: untuk menganimasikan perubahan kemiringan kamera.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Tetapkan target (lokasi)

Lokasi menentukan titik tengah peta. Lokasi ditentukan oleh lintang dan bujur, dan direpresentasikan secara terprogram oleh CLLocationCoordinate2D, yang dibuat dengan CLLocationCoordinate2DMake.

Gunakan GMSCameraPosition untuk mengubah lokasi. Dalam contoh ini, peta dipaskan ke lokasi baru.

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

Untuk menganimasikan perubahan, dan menggeser peta ke lokasi baru, Anda dapat menggunakan metode animateToCameraPosition:, bukan menyetel properti camera. Atau, gunakan metode animateToLocation: di GMSMapView.

Swift

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

Objective-C

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

Anda juga dapat membuat objek GMSCameraUpdate untuk memindahkan kamera. Di antara metode factory-nya adalah metode scrollByX:Y: yang memungkinkan Anda men-scroll kamera dengan menentukan jumlah titik untuk menggerakkan kamera ke arah X dan Y. Pada contoh berikutnya, Anda men-scroll 200 titik kamera ke kanan, dan 100 poin ke bawah:

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

Menetapkan arah (orientasi)

Bearing adalah arah kompas, yang diukur dalam derajat dari utara sejati, dan sesuai dengan tepi atas peta. Misalnya, bearing 90 derajat menghasilkan peta yang tepi atasnya menunjuk ke timur.

Tetapkan bearing secara terprogram dengan GMSCameraPosition atau GMSCameraUpdate atau dengan menggunakan metode animateToBearing: dari GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Menyetel kemiringan (sudut pandang)

Sudut pandang adalah posisi kamera pada busur yang berada tepat di atas posisi tengah peta dan permukaan Bumi, yang diukur dalam derajat dari titik nadir (arah yang menunjuk langsung ke bawah kamera). Jika Anda mengubah sudut pandang, peta akan muncul dalam perspektif, dengan fitur antara kamera dan posisi peta yang tampak lebih besar secara proporsional, dan fitur di luar posisi peta akan tampak lebih kecil secara proporsional, sehingga menghasilkan efek tiga dimensi.

Sudut pandang dapat berkisar antara 0 (menunjuk lurus ke bawah pada peta), dan hingga batas maksimum tingkat zoom. Untuk tingkat zoom 16 dan yang lebih tinggi, sudut maksimum adalah 65 derajat. Untuk tingkat zoom 10 dan yang lebih rendah, sudut maksimumnya adalah 30 derajat.

Tetapkan sudut pandang secara terprogram menggunakan GMSCameraPosition atau GMSCameraUpdate atau dengan metode animateToViewingAngle: dari GMSMapView.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Setel zoom

Tingkat zoom kamera menentukan skala peta. Pada tingkat zoom yang lebih besar, tampilan di layar akan lebih detail, sedangkan pada tingkat zoom yang lebih kecil, semakin luas bagian dunia yang bisa dilihat di layar.

Tetapkan zoom secara terprogram dengan GMSCameraPosition atau GMSCameraUpdate, atau dengan menggunakan metode animateToZoom: dari GMSMapView.

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

Contoh berikut menggunakan metode factory zoomIn: untuk membuat objek GMSCameraUpdate guna menganimasikan zoom in satu tingkat dari level saat ini.

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

Menetapkan batas

Terkadang ada baiknya memindahkan kamera sehingga seluruh area minat terlihat pada tingkat zoom terbaik. Misalnya, jika Anda menampilkan semua SPBU dalam jarak delapan km (lima mil) dari posisi pengguna saat ini, Anda mungkin perlu memindahkan kamera agar semuanya terlihat di layar.

Pertama-tama, hitung GMSCoordinateBounds yang ingin Anda tampilkan di layar. Lalu, gunakan metode cameraForBounds:insets: dari GMSMapView untuk menampilkan GMSCameraPosition baru. Hal ini memastikan bahwa GMSCoordinateBounds yang diberikan benar-benar sesuai dengan ukuran peta saat ini. Perhatikan, kemiringan maupun penjuru pada peta disetel ke 0.

Contoh di bawah ini menunjukkan cara mengubah kamera sehingga kutipan Vancouver dan Calgary muncul dalam tampilan yang sama.

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;
      

Batasi pengguna untuk menggeser ke area tertentu

Dalam skenario di atas, Anda menetapkan batas peta, namun pengguna kemudian dapat men-scroll atau menggeser di luar batas tersebut. Sebagai gantinya, Anda dapat memaksa batas tengah lat/lng titik fokus peta (target kamera) sehingga pengguna hanya dapat men-scroll dan menggeser dalam batas tersebut.

Misalnya, aplikasi retail untuk pusat perbelanjaan atau bandara ingin memaksa peta pada batas tertentu, yang mengizinkan pengguna untuk men-scroll dan menggeser dalam batas tersebut.

Untuk membatasi penggeseran ke batas tertentu, tetapkan properti cameraTargetBounds dari GMSMapView ke objek GMSCoordinateBounds yang menentukan batas yang diperlukan. Untuk menghapus pembatasan ini nanti, tetapkan cameraTargetBounds ke nol.

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Diagram berikut mengilustrasikan skenario saat target kamera dibatasi pada area yang sedikit lebih besar dari area pandang. Pengguna dapat men-scroll dan menggeser, asalkan target kamera tetap berada dalam area yang dibatasi tersebut. Tanda silang menyatakan target kamera:

Diagram yang menampilkan batas kamera yang lebih besar dari area pandang.

Peta selalu mengisi area pandang, bahkan jika hasil di area pandang menampilkan area yang berada di luar batas yang ditetapkan. Misalnya, jika Anda memosisikan target kamera pada sudut area yang dibatasi, area di luar sudut tetap terlihat dalam area pandang, tetapi pengguna tidak dapat men-scroll ke area tersebut. Diagram berikut mengilustrasikan skenario ini. Tanda silang menyatakan target kamera:

Diagram yang menampilkan target kamera diposisikan di sudut kanan bawah batas kamera.

Dalam diagram berikut, target kamera memiliki batas yang sangat terbatas, sehingga menawarkan sangat sedikit peluang bagi pengguna untuk men-scroll atau menggeser peta. Tanda silang menyatakan target kamera:

Diagram yang menampilkan batas kamera yang lebih kecil dari area pandang.

Menyetel zoom minimum atau maksimum

Konstanta global kGMSMinZoomLevel dan kGMSMaxZoomLevel menentukan nilai zoom minimum atau maksimum. Secara default, properti minZoom dan maxZoom dari GMSMapView ditetapkan ke konstanta ini.

Anda dapat membatasi rentang tingkat zoom yang tersedia untuk peta dengan menyetel tingkat zoom minimum dan maksimum. Kode di bawah ini membatasi tingkat zoom antara 10 dan 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];
      

Rentang zoom harus ditetapkan menggunakan metode setMinZoom:maxZoom:, tetapi Anda dapat membaca nilai saat ini menggunakan properti minZoom dan maxZoom. Hal ini berguna saat membatasi salah satu nilai saja. Kode di bawah ini hanya mengubah tingkat zoom minimum.

Swift

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

Objective-C

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

Jika, setelah memperbarui zoom minimum dan maksimum, tingkat zoom kamera ditetapkan ke nilai di luar rentang yang baru, zoom yang ada saat ini akan otomatis diperbarui untuk menampilkan nilai valid terdekat. Misalnya, dalam kode di bawah ini, zoom awal ditetapkan sebagai 4. Saat rentang zoom disetel ke 10-15, zoom saat ini akan diperbarui menjadi 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];