توضّح لك هذه الصفحة كيفية التحكّم في سلوك الاصطدام لعلامة.
تعيين سلوك التصادم لعلامة
يتحكّم سلوك الاصطدام في كيفية عرض العلامة إذا اصطدمت (تداخلت) بعلامة أخرى. تُحدِّد طريقة إنشاء العلامات المتقدّمة طريقة عمل سلوك الاصطدام:
تُعرف العلامات المتقدّمة التي تم إنشاؤها باستخدام
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
، يُرجى الاطّلاع على Marker z-index.إذا تداخلت علامتَا عرض، يتم عرض العلامة التي تتضمن قيمة
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")
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(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);