Çarpışma davranışı

Platform seçin: Android iOS JavaScript

Bu sayfa bir işaretleyicinin çarpışma davranışını nasıl kontrol edeceğinizi gösterir.

Bir işaretleyici için çarpışma davranışını ayarlayın

Çarpışma davranışı, bir işaretleyicinin başka bir işaretleyiciyle çarpışması (üst üste gelmesi) durumunda nasıl görüntüleneceğini kontrol eder. Gelişmiş işaretleyicileri oluşturma şekliniz, çarpışma davranışının nasıl işleyeceğini 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) Çarpışmadan bağımsız olarak işaretçiyi her zaman görüntüle.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL Çakışmadan bağımsız olarak işaretçiyi her zaman görüntüle ve işaretçiyle örtüşebilecek tüm OPTIONAL_AND_HIDES_LOWER_PRIORITY işaretçilerini veya etiketlerini gizle.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY İşaretçiyi yalnızca diğer işaretçilerle çakışmıyorsa gösterin.

    • İki bitmap işaretleyicisi üst üste gelirse, zIndex değeri daha yüksek olan gösterilir. Aynı zIndex değerine sahiplerse, dikey ekran konumu daha düşük olan gösterilir. zIndex hakkında daha fazla bilgi için İşaretleyici z-indeksi konusuna bakın.

    • İ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 örnek, bir işaretleyici için çarpışma davranışının ayarlanmasını gösterir:

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);