این صفحه نحوه کنترل رفتار برخورد برای یک نشانگر را به شما نشان میدهد.
تنظیم رفتار برخورد برای نشانگر
رفتار برخورد کنترل میکند که اگر یک نشانگر با نشانگر دیگری برخورد (همپوشانی) کند، چگونه نمایش داده شود. نحوه ایجاد نشانگر پیشرفته تعیین میکند که رفتار تصادم چگونه کار کند:
نشانگرهای پیشرفتهای که بااستفاده از
BitmapDescriptorFactoryایجاد شدهاند بهعنوان نشانگرهای بیتمپ شناخته میشوند. این نشانگرها توسط نقشه اصلی رسم میشوند.همه نشانگرهای پیشرفته دیگر، ازجمله نشانگرهایی که بااستفاده از روش
AdvancedMarkerOptions.iconView()ایجاد شدهاند، بهعنوان نشانگرهای نمای شناخته میشوند و در لایهای بالای نقشه اصلی رسم میشوند.
برای تنظیم رفتار تصادم،
AdvancedMarkerOptions.collisionBehavior
را روی یکی از موارد زیر تنظیم کنید:
CollisionBehavior.REQUIRED: (پیشفرض) نشانگر همیشه نمایش داده میشود، صرفنظر از برخورد.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONALهمیشه نشانگر را بدون توجه به برخورد نمایش دهید و هرگونه نشانگر یا برچسبOPTIONAL_AND_HIDES_LOWER_PRIORITYرا که با نشانگر همپوشانی دارد پنهان کنید.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITYنشانگر فقط درصورتی نمایش داده میشود که با نشانگرهای دیگر همپوشانی نداشته باشد.اگر دو نشانگر بیتمپ همپوشانی داشته باشند، نشانگری که
zIndexبالاتری دارد نمایش داده میشود. اگرzIndexیکسانی داشته باشند، موردی که موقعیت صفحه عمودی پایینتری دارد نشان داده میشود. برای اطلاعات بیشتر دربارهzIndex، به شاخص z مراجعه کنید.اگر دو نشانگر نما همپوشانی داشته باشند، نشانگری که
zIndexبالاتری دارد نشان داده میشود. اگرzIndexیکسانی داشته باشند، آخرین نشانگر ایجادشده با نشانگرهای ایجادشده قبلاز آن همپوشانی دارد.چون نشانگرهای نمای روی لایهای بالاتر از نشانگرهای بیتمپ کشیده میشوند، نشانگرهای نمای روی نشانگرهای بیتمپ همپوشانی دارند. بنابراین، باید سعی کنید برای کنترل بهتر برخورد، از نشانگرهای یک نوع استفاده کنید.
مثال زیر تنظیم رفتار تصادم را برای نشانگر نشان میدهد:
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")
جاوا
// 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);