Çarpışma davranışı

Platform seçin: Android iOS JavaScript

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ışacak OPTIONAL_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);