Çarpışma davranışı

Platform seçin: Android iOS JavaScript

Bu sayfada, bir işaretçiye ilişkin çakışma davranışının nasıl kontrol edileceği gösterilmektedir.

Bir işaretçi için çakışma davranışını ayarlama

Çarpışma davranışı, bir işaretçinin başka bir işaretçiyle çakıştığında (çakıştığında) nasıl görüntüleneceğini kontrol eder. Gelişmiş işaretçileri oluşturma şekliniz, çakışma davranışının işleyiş şeklini belirler:

  • BitmapDescriptorFactory kullanılarak oluşturulan gelişmiş işaretçiler, bit eşleme işaretçileri 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çilere görünüm işaretçileri denir ve bu işaretçiler temel haritanın üzerindeki bir katmana çizilir.

Çakışma davranışını ayarlamak için AdvancedMarkerOptions.collisionBehavior değerini aşağıdakilerden birine ayarlayın:

  • CollisionBehavior.REQUIRED: (varsayılan) Çarpışma durumundan bağımsız olarak işaretçiyi her zaman görüntüleyin.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL Çarpışma fark etmeksizin işaretçiyi her zaman görüntüleyin ve işaretçiyle çakışan tüm OPTIONAL_AND_HIDES_LOWER_PRIORITY işaretçilerini veya etiketleri gizleyin.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY İşaretçiyi yalnızca diğer işaretçilerle çakışmadığında görüntüleyin.

    • İki bit eşleme işaretçisi çakışırsa daha yüksek zIndex değerine sahip olan gösterilir. Bunlar aynı zIndex değerine sahipse dikey ekran konumu en düşük olanı gösterilir. zIndex hakkında daha fazla bilgi için İşaretçi Z-endeksi'ne bakın.

    • İki görünüm işaretçisi çakışırsa daha yüksek zIndex değerine sahip olan gösterilir. Bunlar aynı zIndex değerine sahipse 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. Dolayısıyla, daha iyi çarpışma kontrolü için aynı türde işaretçiler kullanmaya çalışmalısınız.

Aşağıdaki örnekte, bir işaretçi için çakışma davranışı ayarlama 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 = 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);