İşaretçileri, etiketleri ve ÖY çakışmalarını yönetme

Bu sayfada, eklediğiniz işaretçiler arasındaki çakışmaları nasıl yöneteceğiniz gösterilmektedir haritanıza ve önemli yerler (ÖY) veya sokak gibi varsayılan etiketlere gösterir.

Başlamadan önce

İşaretçi ve etiket çakışmalarını yönetmek için bir harita kimliği kullanmanız gerekir.

Basit mod ile bir haritanın bitmap resmini kullanıyorsanız işaretçi ve etiket çakışmalarını yönetemezsiniz.

İşaretçi önceliklerini belirtme

Marker kullanın.Bir cihazda öncelik belirtmek için CollisionBehavior özelliği kullanabilirsiniz.

Aşağıdaki değerlerden birini kullanın:

  • REQUIRED - Varsayılan. Diğer ile çakışan bir işaretçinin görüntülenmesini gerektirir önemli yerleri vurgular.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: İşaretçinin gerekli bir işaretçiyle değiştirilebileceğini veya OPTIONAL_AND_HIDES_LOWER_PRIORITYörtüşebileceğini ya da daha yüksek önceliğe sahip bir işaretçiyle değiştirilebileceğini gösterir. Göreli önceliğin belirlenmesi için zIndex kullanın OPTIONAL_AND_HIDES_LOWER_PRIORITY işaretçi arasında. Daha yüksek bir zIndex değeri, daha yüksek önceliği gösterir.
  • REQUIRED_AND_HIDES_OPTIONAL: İşaretçiyle örtüşen tüm OPTIONAL_AND_HIDES_LOWER_PRIORITY işaretçilerini, etiketlerini veya ÖY'lerini gizleyerek bir işaretçinin gösterilmesini gerektirir. İşaretçi, gerekli diğer işaretçilerle çakışabilir.

Aşağıdaki kod örneğinde, yeni bir işaretçi için CollisionBehavior ayarı 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);