Mengonfigurasi peta

Pilih platform: Android iOS

Topik ini menjelaskan cara mengonfigurasi peta yang ditambahkan ke aplikasi iOS menggunakan Maps SDK for iOS.

Ringkasan

Setelah menambahkan peta ke aplikasi, Anda dapat mengonfigurasi setelan awal dan runtime peta. Untuk mengetahui detail tentang menambahkan penampung peta, lihat artikel Menambahkan peta.

Setelan peta awal mencakup:

  • Posisi kamera, termasuk: lokasi, zoom, bearing, dan kemiringan. Lihat Kamera dan Tampilan untuk mengetahui detail tentang pemosisian kamera.
  • Jenis peta.
  • Komponen UI yang akan ditampilkan, seperti tombol zoom dan kompas.
  • Gestur yang akan diaktifkan.

Saat runtime, Anda dapat mengonfigurasi setelan ini dan beberapa setelan tambahan dengan mengupdate objek GMSMapView.

Jenis peta

Anda bisa menyesuaikan peta Anda dengan salah satu dari beberapa tipe peta. Jenis peta mengatur representasi peta secara keseluruhan. Misalnya, atlas biasanya berisi peta politik yang berfokus untuk menampilkan batas, dan peta jalan yang menampilkan semua jalan untuk kota atau wilayah. Maps SDK for iOS menawarkan jenis peta berikut:

Jenis Peta
Normal
Nilai: kGMSTypeNormal
Peta jalan biasa. Menampilkan jalan, beberapa fitur yang dibuat oleh manusia, dan fitur alami penting, seperti sungai. Label jalan dan fitur juga terlihat.
Hibrid
Nilai: kGMSTypeHybrid
Data foto satelit dengan tambahan peta jalan. Label jalan dan fitur juga terlihat.
Satelit
Nilai: kGMSTypeSatellite
Data foto satelit. Label jalan dan fitur tidak terlihat.
Medan
Nilai: kGMSTypeTerrain
Data topografis. Peta ini menyertakan warna, garis dan label kontur, serta bayangan perspektif. Beberapa jalan dan label juga terlihat.
Tidak ada
Nilai: kGMSTypeNone
Tidak ada ubin peta. Petak peta dasar tidak akan dirender. Mode ini berguna saat digunakan dengan lapisan ubin. Tampilan data lalu lintas akan dinonaktifkan jika jenis peta ditetapkan ke tidak ada.

Mengubah jenis peta

Untuk menetapkan jenis peta, tetapkan nilai baru ke properti GMSMapView.mapType. Misalnya, untuk menampilkan tipe peta satelit:

Swift

let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
mapView.mapType = .satellite
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.mapType = kGMSTypeSatellite;
      

Pemilih di bawah ini menunjukkan perbandingan peta medan, normal, dan hybrid untuk lokasi yang sama:

Peta lantai

Pada tingkat zoom tinggi, Maps SDK for iOS akan menampilkan denah lantai untuk ruangan tertutup seperti bandara, pusat perbelanjaan, toko retail besar, dan stasiun transportasi umum. Denah lantai dalam ruangan terintegrasi ke ubin peta default untuk jenis peta 'normal' (kGMSTypeNormal), dan secara otomatis diaktifkan saat pengguna memperbesar dan memudar saat peta diperkecil.

Anda dapat menonaktifkan peta lantai dengan menetapkan properti indoorEnabled dari GMSMapView ke NO.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Atau, Anda dapat menonaktifkan kontrol Pemilih Lantai saja.

Menambahkan denah lantai

Denah lantai tersedia di lokasi tertentu. Jika data denah lantai tidak tersedia untuk bangunan yang ingin Anda sorot dalam aplikasi, Anda dapat:

  • Menambahkan denah lantai ke Google Maps secara langsung. Tindakan ini akan membuat paket Anda tersedia untuk semua pengguna Google Maps.
  • Menampilkan denah lantai sebagai Overlay Bumi. Dengan begitu, hanya pengguna aplikasi Anda yang dapat melihat denah lantai.

Lapisan lalu lintas

Anda dapat memberi pengguna kemampuan untuk melihat peta dengan informasi kepadatan lalu lintas yang tumpang-tindih di atasnya. Hal ini memberikan ringkasan visual tentang situasi lalu lintas lokal mereka. Anda dapat mengaktifkan dan menonaktifkan lapisan traffic dengan memanggil metode trafficEnabled. Contoh berikut menunjukkan bagaimana lapisan lalu lintas mungkin muncul pada peta.

Peta Google yang menampilkan lapisan lalu lintas

Aksesibilitas

Secara default, elemen aksesibilitas pada peta disembunyikan. Anda dapat mengaktifkan aksesibilitas dengan menetapkan properti accessibilityElementsHidden dari GMSMapView ke NO. Hal ini akan menyebabkan elemen aksesibilitas dibuat untuk objek overlay (seperti GMSMarker dan jendela info, GMSPolyline, dll).

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

Properti ini sesuai dengan protokol UIAccessibility informal, kecuali nilai default di Maps SDK for iOS adalah YES.

Lokasiku

Secara default, tidak ada data lokasi yang ditampilkan pada peta. Anda dapat mengaktifkan titik "Lokasi saya" dan arah kompas dengan menetapkan myLocationEnabled di GMSMapView.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Mengaktifkan fitur ini juga akan memberikan lokasi pengguna saat ini melalui properti myLocation. Properti ini mungkin tidak langsung tersedia. Misalnya, jika pengguna diminta oleh iOS untuk mengizinkan akses ke data ini. Dalam kasus ini, nilai nol.

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

Bangunan 3D

Banyak kota, yang jika dilihat dari dekat, akan terlihat memiliki bangunan 3D, seperti yang terlihat pada foto Seattle, Washington di bawah.

Peta 3D bangunan di Seattle, Washington.

Anda dapat menonaktifkan bangunan 3D dengan menetapkan properti GMSMapView yang sesuai di Swift atau Objective-C, seperti yang ditunjukkan di bawah ini:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

Padding peta

Peta Google didesain untuk mengisi seluruh wilayah yang ditentukan oleh GMSMapView. Beberapa aspek tampilan dan perilaku peta ditentukan oleh dimensi tampilan:

  • Target kamera akan mencerminkan pusat wilayah dengan padding.
  • Kontrol peta diposisikan sesuai dengan tepi peta.
  • Informasi hukum, seperti pernyataan hak cipta atau logo Google muncul di sepanjang tepi bawah peta.

Anda dapat menambahkan padding di sekitar tepi peta menggunakan metode GMSMapView.padding. Peta akan terus mengisi seluruh penampung, tetapi posisi teks dan kontrol, gestur peta, dan gerakan kamera akan berperilaku seolah-olah ditempatkan di ruang yang lebih kecil. Hal ini menghasilkan perubahan berikut:

  • Gerakan kamera melalui panggilan API atau penekanan tombol (mis., kompas, lokasi saya) akan relatif dengan wilayah padding.
  • GMSMapView.projection akan menampilkan proyeksi yang hanya menyertakan area padding.
  • Kontrol UI akan di-offset dari tepi penampung dengan jumlah titik yang ditentukan.

Padding dapat berguna saat mendesain UI yang tumpang-tindih dengan beberapa bagian peta. Misalnya, dalam gambar di bawah, peta diberi padding di sepanjang tepi atas dan kanan. Kontrol peta yang terlihat dan teks hukum akan ditampilkan sepanjang tepi wilayah dengan padding, yang ditampilkan dengan warna hijau, sementara peta akan terus mengisi seluruh penampung, yang ditampilkan dengan warna biru. Dalam contoh ini, Anda dapat mengambangkan menu di atas sisi kanan peta tanpa mengaburkan kontrol peta.

Padding Peta

Untuk menambahkan padding ke peta, buat objek UIEdgeInsets dan teruskan ke GMSMapView.padding.

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;