توضّح لك هذه الصفحة كيفية التحكّم في سلوك التصادم لعلامة.
ضبط سلوك التصادم لعلامة
يتحكّم سلوك التصادم في طريقة عرض العلامة إذا تداخلت مع علامة أخرى. تحدّد طريقة إنشاء العلامات المتقدّمة آلية عمل سلوك التصادم:
يُشار إلى العلامات المتقدّمة التي تم إنشاؤها باستخدام
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-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")
جافا
// 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);