این صفحه به شما نشان می دهد که چگونه رفتار برخورد یک نشانگر را کنترل کنید.
رفتار برخورد را برای نشانگر تنظیم کنید
رفتار برخورد نحوه نمایش نشانگر در صورت برخورد (همپوشانی) با نشانگر دیگر را کنترل می کند. نحوه ایجاد نشانگرهای پیشرفته نحوه عملکرد رفتار برخورد را تعیین می کند:
نشانگرهای پیشرفته ایجاد شده با استفاده از
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 = 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);