Bu sayfada, bir işaretçinin çakışma davranışını nasıl kontrol edeceğiniz gösterilmektedir.
İşaretçi için çakışma davranışını ayarlama
Çakışma davranışı, bir işaretçinin başka bir işaretçiyle çakışması (üst üste gelmesi) durumunda nasıl görüntüleneceğini kontrol eder. Gelişmiş işaretçileri oluşturma şekliniz, çakışma davranışının nasıl çalışacağını belirler:
BitmapDescriptorFactory
kullanılarak oluşturulan gelişmiş işaretçiler, bit eşlem işaretçiler olarak adlandırılır. Bu işaretçiler, temel harita tarafından çizilir.AdvancedMarkerOptions.iconView()
yöntemi kullanılarak oluşturulanlar da dahil olmak üzere diğer tüm gelişmiş işaretçiler, görünüm işaretçileri olarak adlandırılır ve temel haritanın üzerindeki bir katmanda çizilir.
Çakışma davranışını ayarlamak için
AdvancedMarkerOptions.collisionBehavior
değerini aşağıdakilerden birine ayarlayın:
CollisionBehavior.REQUIRED
: (varsayılan) Çakışma olup olmadığına bakılmaksızın işaretçiyi her zaman gösterir.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
Çakışma olup olmadığına bakılmaksızın işaretçiyi her zaman gösterin ve işaretçiyle çakışacakOPTIONAL_AND_HIDES_LOWER_PRIORITY
işaretçilerini veya etiketlerini gizleyin.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
İşaretçiyi yalnızca diğer işaretçilerle çakışmıyorsa gösterin.İki bit eşlem işaretçi çakışırsa daha yüksek
zIndex
değerine sahip olan gösterilir. AynızIndex
öğesine sahipse dikey ekran konumu daha düşük olan gösterilir.zIndex
hakkında daha fazla bilgi için Marker z-index başlıklı makaleyi inceleyin.İki görüntüleme işaretçisi çakışırsa daha yüksek
zIndex
değerine sahip olan gösterilir. AynızIndex
değerine sahipse en son oluşturulan işaretçi, kendisinden önce oluşturulan tüm işaretçilerle çakışır.Görünüm işaretçileri, bit eşlem işaretçilerinin üzerindeki bir katmana çizildiğinden görünüm işaretçileri, bit eşlem işaretçileriyle çakışır. Bu nedenle, daha iyi çakışma kontrolü için aynı türden işaretçiler kullanmaya çalışmalısınız.
Aşağıdaki örnekte, bir işaretçi için çakış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);