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