مدیریت نشانگرها، برچسب ها و برخوردهای POI

این صفحه به شما نشان می‌دهد که چگونه تداخل بین نشانگرهایی که به نقشه خود اضافه می‌کنید و برچسب‌های پیش‌فرض، مانند نقاط مورد علاقه (POI) یا نام خیابان‌ها را مدیریت کنید.

قبل از اینکه شروع کنی

برای مدیریت تداخل نشانگرها و برچسب‌ها، باید از شناسه نقشه (map id) استفاده کنید.

اگر از یک تصویر بیت‌مپ از یک نقشه در حالت ساده استفاده می‌کنید، نمی‌توانید تداخل نشانگرها و برچسب‌ها را مدیریت کنید.

تعیین اولویت‌های نشانگر

CollisionBehavior ویژگی Marker برای تعیین اولویت روی یک نشانگر استفاده کنید.

از یکی از مقادیر زیر استفاده کنید:

  • REQUIRED - پیش‌فرض. نمایش نشانگری را الزامی می‌کند که با سایر نشانگرها، برچسب‌ها و نقاط مورد علاقه همپوشانی داشته باشد.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY - نشان می‌دهد که نشانگر می‌تواند با یک نشانگر الزامی جایگزین یا همپوشانی شود، یا با یک نشانگر OPTIONAL_AND_HIDES_LOWER_PRIORITY با اولویت بالاتر جایگزین شود. zIndex برای تعیین اولویت نسبی بین نشانگرهای OPTIONAL_AND_HIDES_LOWER_PRIORITY استفاده کنید. مقدار zIndex بالاتر نشان‌دهنده اولویت بالاتر است.
  • REQUIRED_AND_HIDES_OPTIONAL - در حالی که نشانگرها، برچسب‌ها یا POIهای OPTIONAL_AND_HIDES_LOWER_PRIORITY که با نشانگر همپوشانی دارند را پنهان می‌کند، نمایش یک نشانگر الزامی است. این نشانگر ممکن است با سایر نشانگرهای مورد نیاز همپوشانی داشته باشد.

مثال کد زیر تنظیم CollisionBehavior را برای یک نشانگر جدید نشان می‌دهد:

کاتلین

// 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")

جاوا

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