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

Bu sayfada, haritanıza eklediğiniz işaretçiler ile varsayılan etiketler (ör. önemli yerler veya sokak adları) arasındaki çakışmaları nasıl yöneteceğiniz gösterilmektedir.

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.CollisionBehavior mülkünü kullanarak işaretçiye öncelik verebilirsiniz.

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

  • REQUIRED: Varsayılan değerdir. Diğer işaretçiler, etiketler ve ÖY'lerle çakışan bir işaretçi gösterilmesini gerektirir.
  • 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. OPTIONAL_AND_HIDES_LOWER_PRIORITY işaretçileri arasındaki göreceli önceliği belirlemek için zIndex simgesini kullanın. 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, diğer gerekli 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);