Ringkasan ini menjelaskan cara mengonfigurasi peta yang ditambahkan ke aplikasi iOS menggunakan Maps SDK for iOS.
Ringkasan
Setelah menambahkan peta ke aplikasi, Anda dapat mengonfigurasi opsi awal dan setelan runtime peta. Untuk mengetahui detail tentang menambahkan penampung peta, lihat artikel Menambahkan peta.
Setelan peta awal mencakup:
- Posisi kamera, termasuk: lokasi, zoom, arah, dan kemiringan. Lihat Kamera dan Tampilan untuk mengetahui detail tentang pemosisian kamera.
- Warna latar belakang peta.
- Jenis peta.
- Komponen UI yang akan ditampilkan, seperti tombol zoom dan kompas.
- Gestur yang akan diaktifkan.
Pada saat runtime, Anda dapat mengonfigurasi setelan ini dan beberapa setelan tambahan dengan
memperbarui
objek
GMSMapView
.
Opsi peta
Saat melakukan inisialisasi tampilan peta, opsi konfigurasi ditetapkan dengan GMSMapViewOptions
. Properti opsi mencakup frame
, camera
, mapID
, atau
backgroundColor
.
Opsi Peta | |
---|---|
menyesuaikan posisi bingkai | Nilai:
CGRect Bingkai peta. Default-nya adalah CGRectZero.
|
kamera | Nilai:
GMSCameraPosition Posisi kamera peta default.
|
mapID | Nilai:
GMSMapID ID peta Google. Parameter opsional.
|
backgroundColor | Nilai:
UIColor Default-nya adalah UIColor.lightGray
|
Mengonfigurasi opsi peta
Anda dapat menetapkan properti opsi Anda sendiri, atau meneruskan GMSMapViewOptions
yang dibuat instance-nya dengan nilai default langsung ke GMSMapView
.
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
Berikut adalah contoh penerusan objek GMSMapViewOptions
dengan nilai default
langsung ke GMSMapView
.
Swift
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
Mengonfigurasi warna latar belakang
Saat bekerja dalam mode gelap atau beralih di antara tampilan peta, sebaiknya ganti warna latar belakang peta default. Hal ini dapat dilakukan dengan menetapkan properti backgroundColor
opsi peta.
Swift
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
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 suatu kota atau wilayah. Maps SDK for iOS menawarkan jenis peta berikut:
Jenis Peta | |
---|---|
Normal | Nilai:
kGMSTypeNormal Peta jalan yang umum. Menampilkan jalan, beberapa fitur yang dibangun oleh manusia, dan fitur alam penting, seperti sungai. Label jalan dan fitur juga terlihat.
|
Hybrid | 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 topografi. Peta ini menyertakan warna, garis kontur, dan label, 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 bersama dengan lapisan ubin. Tampilan data lalu lintas 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 options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
Pemilih di bawah ini menunjukkan perbandingan peta, normal dan campuran medan, normal, dan hibrid 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 memperbesarnya, 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 tandai dalam aplikasi, Anda dapat:
- Tambahkan denah lantai ke Google Maps secara langsung. Hal ini membuat rencana Anda tersedia bagi semua pengguna Google Maps.
- Menampilkan denah lantai sebagai Overlay Bumi. Tindakan ini hanya memungkinkan pengguna aplikasi melihat denah lantai Anda.
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 lalu lintas dengan memanggil
metode
trafficEnabled
. Contoh berikut menunjukkan bagaimana lapisan lalu lintas mungkin muncul pada peta.
Aksesibilitas
Secara default, elemen aksesibilitas pada peta disembunyikan. Anda dapat mengaktifkan
aksesibilitas dengan menetapkan properti accessibilityElementsHidden
dari
GMSMapView
ke NO
. Hal ini 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, dengan pengecualian
nilai default di Maps SDK for iOS adalah YES
.
Lokasiku
Secara default, tidak ada data lokasi yang ditampilkan pada peta. Anda dapat mengaktifkan titik biru "Lokasiku" dan arah kompas dengan menyetel myLocationEnabled
pada
GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Jika fitur ini diaktifkan, lokasi pengguna saat ini akan tersedia melalui
properti myLocation
. Properti ini mungkin tidak langsung tersedia, misalnya, jika pengguna diminta oleh iOS untuk mengizinkan akses ke data ini. Nilainya adalah
nil
dalam kasus ini.
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 gambar Seattle, Washington di bawah ini.
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
Google Maps didesain untuk mengisi seluruh wilayah yang ditentukan oleh GMSMapView
.
Beberapa aspek tampilan dan perilaku peta ditentukan oleh dimensi
tampilan:
- Target kamera 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 GMSMapView
.padding
. Peta terus mengisi
seluruh penampung, tetapi posisi teks dan kontrol, gestur peta, dan gerakan
kamera berperilaku seolah-olah ditempatkan di ruang yang lebih kecil. Hal ini menghasilkan
perubahan berikut:
- Gerakan kamera menggunakan panggilan API atau penekanan tombol (mis., kompas, lokasi saya) akan sesuai dengan wilayah dengan padding.
GMSMapView
.projection
menampilkan proyeksi yang hanya menyertakan wilayah dengan padding.- Kontrol UI di-offset dari tepi penampung berdasarkan jumlah titik yang ditetapkan.
Padding dapat berguna saat mendesain UI yang tumpang-tindih dengan beberapa bagian peta. Misalnya, dalam gambar, peta diberi padding di sepanjang tepi atas dan kanan. Kontrol peta yang terlihat dan teks hukum ditampilkan di sepanjang tepi wilayah dengan padding, yang ditampilkan dengan warna hijau, sementara peta 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.
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;