Mengonfigurasi peta

Pilih platform: Android iOS

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 runtime setelan peta. Untuk mengetahui detail tentang menambahkan penampung peta, lihat artikel Menambahkan peta.

Setelan peta awal mencakup:

Pada saat runtime, Anda dapat mengonfigurasi setelan ini dan beberapa setelan tambahan dengan memperbarui GMSMapView .

Opsi peta

Saat menginisialisasi 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 CGRectangleZero.
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 sendiri, atau meneruskan instance GMSMapViewOptions 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 antartampilan peta, sebaiknya Anda mengganti warna latar belakang peta default. Hal ini dapat dilakukan dengan menyetel atribut properti backgroundColor.

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, sebuah atlas biasanya berisi peta politik yang berfokus untuk menunjukkan perbatasan, dan peta jalan yang menunjukkan semua jalan untuk sebuah kota atau wilayah. Maps SDK for iOS menawarkan jenis peta berikut ini:

Jenis Peta
Normal
Nilai: kGMSTypeNormal
Peta jalan yang umum. Menampilkan jalan, beberapa fitur yang dibuat oleh manusia, dan fitur alam penting seperti sungai. Label jalan dan fitur juga terlihat. Mendukung penyetelan skema warna peta ke gelap, terang, atau untuk mengikuti pengaturan sistem.
Hybrid
Nilai: kGMSTypeHybrid
Data foto satelit dengan tambahan peta jalan. Jalan dan fitur label juga terlihat.
Satelit
Nilai: kGMSTypeSatellite
Data foto satelit. Label jalan dan fitur tidak terlihat.
Medan
Nilai: kGMSTypeTerrain
Data topografi. Peta itu mencakup warna, garis kontur dan label, dan bayangan perspektif. Beberapa jalan dan label juga terlihat. Mendukung menyetel skema warna peta menjadi gelap, terang, atau mengikuti setelan sistem.
Tidak ada
Nilai: kGMSTypeNone
Tidak ada ubin peta. Petak peta dasar tidak akan dirender. Mode ini adalah berguna bersama dengan kartu lapisan secara otomatis. Tampilan data lalu lintas akan dinonaktifkan bila jenis peta adalah tetapkan ke tidak ada.

Mengubah jenis peta

Untuk menetapkan jenis peta, tetapkan nilai baru ke GMSMapView.mapType saat ini. 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 medan, normal, dan hibrida untuk lokasi yang sama:

Peta lantai

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

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

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Atau, Anda dapat menonaktifkan hanya Kontrol Pemilih Lantai.

Menambahkan denah lantai

Denah lantai tersedia di pilih lokasi ini. Jika data denah lantai tidak tersedia untuk bangunan yang ingin Anda di permohonan, Anda dapat:

  • Tambahkan lantai paket langsung ke Google Maps. Hal ini membuat rencana Anda tersedia untuk semua pengguna di Google Maps.
  • Menampilkan denah lantai sebagai Overlay Bumi. Tindakan ini hanya memungkinkan pengguna aplikasi untuk 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 tindakan trafficEnabled . Contoh berikut menunjukkan bagaimana lapisan lalu lintas mungkin muncul pada peta.

Peta Google yang menampilkan lalu lintas
lapisan

Aksesibilitas

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

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

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

Lokasiku

Secara default, tidak ada data lokasi yang ditampilkan pada peta. Anda dapat mengaktifkan kotak centang Lokasi" titik dan arah kompas dengan menyetel myLocationEnabled ke aktif GMSMapView.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Mengaktifkan fitur ini akan memberikan lokasi pengguna saat ini melalui myLocation. Properti ini mungkin tidak langsung tersedia - untuk misalnya, jika pengguna diminta oleh iOS untuk mengizinkan akses ke data ini. Penting 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.

Peta 3D bangunan di Seattle, Washington.

Anda dapat menonaktifkan bangunan 3D dengan menyetel GMSMapView 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.Properti padding. Peta terus terisi seluruh penampung, tetapi posisi teks dan kontrol, gestur peta, dan kamera gerakan 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) relatif terhadap wilayah dengan padding.
  • GMSMapView.projection menampilkan proyeksi yang hanya menyertakan padding teritorial Anda.
  • Kontrol UI di-offset dari tepi penampung berdasarkan jumlah titik.

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 padding wilayah, 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.

Padding Peta

Untuk menambahkan padding ke peta Anda, 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;
      

Skema warna peta

Untuk peta jenis normal dan medan, Anda bisa mengatur skema warna peta ke gelap, lampu, atau menggunakan pengaturan sistem saat ini. Misalnya, Anda dapat menggelapkan atau cerahkan skema warna peta berdasarkan waktu atau penggunaan di dalam atau luar ruangan perangkat.

Gunakan GMSMapView overrideUserInterfaceStyle: untuk mengatur dan memperbarui skema warna peta.

Swift

let options = GMSMapViewOptions()
// Map is init to use light mode by default.
let mapView = GMSMapView(options: options)
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = .dark
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = .light
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = .unspecified

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
// Map is init to always use light mode.
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;