Bu sayfada, bir işaretçinin çarpışma davranışını nasıl kontrol edeceğiniz gösterilmektedir.
İşaretçi için çarpışma davranışını ayarlama
Çarpışma davranışı, bir işaretçi başka bir işaretçiyle çarpıştığında (örtüştüğünde) nasıl gösterileceğini kontrol eder. Gelişmiş işaretçileri oluşturma şekliniz, çarpışma davranışının işleyiş şeklini belirler:
BitmapDescriptorFactory
kullanılarak oluşturulan gelişmiş işaretçilere bit eşlem işaretçileri denir. Bu işaretçiler, ana harita tarafından çizilir.AdvancedMarkerOptions.iconView()
yöntemi kullanılarak oluşturulanlar da dahil olmak üzere diğer tüm gelişmiş işaretçilere görüntü işaretçileri denir ve ana haritanın üzerindeki bir katmanda çizilir.
Çarpışma davranışını ayarlamak için AdvancedMarkerOptions.collisionBehavior
değerini aşağıdakilerden birine ayarlayın:
CollisionBehavior.REQUIRED
: (varsayılan) Çarpışmadan bağımsız olarak işaretçiyi her zaman göster.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
Çarpışmadan bağımsız olarak işaretçiyi her zaman gösterin ve işaretçiyleOPTIONAL_AND_HIDES_LOWER_PRIORITY
örtüşecek işaretçileri veya etiketleri gizleyin.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
İşaretçiyi yalnızca diğer işaretçilerle örtüşmüyorsa göster.İki bitmap işaretçisi çakışırsa
zIndex
değeri daha yüksek olan işaretçi gösterilir. AynızIndex
değerine sahiplerse dikey ekran konumu daha düşük olan gösterilir.zIndex
hakkında daha fazla bilgi için İşaretçi z-dizini bölümüne bakın.İki görüntüleme işaretçisi çakışırsa
zIndex
değeri daha yüksek olan işaretçi gösterilir. AynızIndex
değerine sahiplerse en son oluşturulan işaretçi, kendisinden önce oluşturulan işaretçilerle örtüşür.Görünüm işaretçileri, bitmap işaretçilerinin üzerindeki bir katmanda çizildiğinden görünüm işaretçileri bitmap işaretçileriyle çakışır. Bu nedenle, daha iyi çarpışma kontrolü için aynı türde işaretçiler kullanmayı denemeniz gerekir.
Aşağıdaki örnekte, bir işaretçi için çarpışma davranışının nasıl ayarlanacağı gösterilmektedir:
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 = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
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(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);