رفتار برخورد

پلتفرم مورد نظر را انتخاب کنید: اندروید، iOS، جاوا اسکریپت

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

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

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

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

  • All other advanced markers, including those created by using the AdvancedMarkerOptions.iconView() method, are referred to as view markers and are drawn on a layer above the core map.

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

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

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

    • If two view markers overlap, the one with the higher zIndex is shown. If they have the same zIndex , the last created marker overlaps any markers created before it.

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

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

کاتلین

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