تعرض لك هذه الصفحة كيفية التحكم في سلوك التصادم لعلامة ما.
ضبط سلوك التصادم لعلامة
يتحكم سلوك التصادم في كيفية عرض علامة في حال اصطدامها (تداخلها) مع علامة أخرى. تحدد طريقة إنشاء علامات متقدمة طريقة عمل سلوك التصادم:
يُشار إلى العلامات المتقدّمة التي تم إنشاؤها باستخدام
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
، فإن آخر علامة تم إنشاؤها تتداخل مع أي علامات تم إنشاؤها قبلها.نظرًا لأن علامات view يتم رسمها على طبقة أعلى علامات الصورة النقطية، تتداخل علامات view مع علامات الصورة النقطية. لذلك، يجب أن تحاول استخدام علامات من نفس النوع للتحكم بشكل أفضل في التصادم.
يوضح المثال التالي ضبط سلوك التصادم لعلامة ما:
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 = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(latLng) .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)
Java
// 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);