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