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