رفتار برخورد

پلتفرم را انتخاب کنید: Android iOS JavaScript

این صفحه به شما نشان می دهد که چگونه رفتار برخورد یک نشانگر را کنترل کنید.

رفتار برخورد را برای نشانگر تنظیم کنید

رفتار برخورد نحوه نمایش نشانگر در صورت برخورد (همپوشانی) با نشانگر دیگر را کنترل می کند. نحوه ایجاد نشانگرهای پیشرفته نحوه عملکرد رفتار برخورد را تعیین می کند:

  • نشانگرهای پیشرفته ایجاد شده با استفاده از BitmapDescriptorFactory به عنوان نشانگرهای بیت مپ شناخته می شوند. این نشانگرها توسط نقشه اصلی ترسیم می شوند.

  • تمام نشانگرهای پیشرفته دیگر، از جمله آنهایی که با استفاده از متد AdvancedMarkerOptions.iconView() ایجاد شده‌اند، به عنوان نشانگرهای view شناخته می‌شوند و بر روی یک لایه بالای نقشه اصلی ترسیم می‌شوند.

برای تنظیم رفتار برخورد، AdvancedMarkerOptions.collisionBehavior را روی یکی از موارد زیر تنظیم کنید:

  • CollisionBehavior.REQUIRED : (پیش فرض) همیشه نشانگر را بدون توجه به برخورد نمایش دهید.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL همیشه نشانگر را بدون توجه به تصادم نمایش دهید و هر OPTIONAL_AND_HIDES_LOWER_PRIORITY نشانگر یا برچسبی را که با نشانگر همپوشانی دارند پنهان کنید.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY نشانگر را فقط در صورتی نمایش دهید که با دیگر نشانگرها همپوشانی نداشته باشد.

    • اگر دو نشانگر بیت مپ همپوشانی داشته باشند، نشانگر با zIndex بالاتر نشان داده می شود. اگر zIndex یکسانی داشته باشند، یکی با موقعیت عمودی پایین صفحه نمایش نشان داده می شود. برای اطلاعات بیشتر درباره zIndex ، به نشانگر z-index مراجعه کنید.

    • اگر دو نشانگر نما همپوشانی داشته باشند، نشانگر با zIndex بالاتر نشان داده می شود. اگر zIndex یکسان داشته باشند، آخرین نشانگر ایجاد شده با هر نشانگر ایجاد شده قبل از آن همپوشانی دارد.

    • از آنجایی که نشانگرهای نمایش روی یک لایه بالای نشانگرهای بیت مپ ترسیم می شوند، نشانگرهای نمایش روی نشانگرهای بیت مپ همپوشانی دارند. بنابراین، باید سعی کنید از نشانگرهایی از همان نوع برای کنترل بهتر برخورد استفاده کنید.

مثال زیر تنظیم رفتار برخورد برای یک نشانگر را نشان می دهد:

کاتلین

// 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 = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions()
    .position(latLng)
    .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)

جاوا

// 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(latLng)
            .collisionBehavior(collisionBehavior);
Marker marker = map.addMarker(options);