Halaman ini menunjukkan cara mengontrol perilaku penanda saat tumpang-tindih.
Menetapkan perilaku penanda saat tumpang-tindih
Perilaku saat tumpang-tindih mengontrol cara penanda ditampilkan jika tumpang-tindih dengan penanda lain. Cara Anda membuat penanda lanjutan akan menentukan cara kerja perilaku saat tumpang-tindih:
Penanda lanjutan yang dibuat menggunakan
BitmapDescriptorFactory
disebut sebagai penanda bitmap. Penanda ini digambar oleh peta inti.Semua penanda lanjutan lainnya, termasuk yang dibuat menggunakan metode
AdvancedMarkerOptions.iconView()
, disebut sebagai penanda tampilan dan digambar pada lapisan di atas peta inti.
Untuk menetapkan perilaku saat tumpang tindih, tetapkan AdvancedMarkerOptions.collisionBehavior
ke salah satu nilai berikut:
CollisionBehavior.REQUIRED
: (default) Selalu menampilkan penanda terlepas dari tumpang-tindih yang terjadi.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
Selalu menampilkan penanda terlepas dari tumpang-tindih yang terjadi, dan menyembunyikan setiap penanda atau labelOPTIONAL_AND_HIDES_LOWER_PRIORITY
yang akan tumpang-tindih dengan penanda.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
Menampilkan penanda hanya jika tidak tumpang-tindih dengan penanda lainnya.Jika dua penanda bitmap tumpang-tindih, penanda dengan
zIndex
yang lebih tinggi akan ditampilkan. Jika keduanya memilikizIndex
yang sama, penanda dengan posisi layar vertikal yang lebih rendah akan ditampilkan. Untuk informasi selengkapnya tentangzIndex
, lihat Indeks z penanda.Jika dua penanda tampilan tumpang-tindih, penanda dengan
zIndex
yang lebih tinggi akan ditampilkan. Jika keduanya memilikizIndex
yang sama, penanda yang terakhir dibuat akan tumpang-tindih dengan penanda yang dibuat sebelumnya.Karena penanda tampilan digambar pada lapisan di atas penanda bitmap, penanda tampilan akan tumpang-tindih dengan penanda bitmap. Oleh karena itu, Anda harus mencoba menggunakan penanda dari jenis yang sama untuk mengoptimalkan kontrol tumpang-tindih.
Contoh berikut menunjukkan setelan perilaku saat tumpang tindih untuk penanda:
Kotlin
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible val collisionBehavior: Int = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(latLng) .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)
Java
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL; AdvancedMarkerOptions options = new AdvancedMarkerOptions() .position(latLng) .collisionBehavior(collisionBehavior);
Marker marker = map.addMarker(options);