توضّح لك هذه الصفحة كيفية التحكّم في سلوك التصادم لعلامة.
ضبط سلوك التعارض لعلامة
تتحكّم سلوكيات التصادم في طريقة عرض العلامة إذا تصادمت (تداخلت) مع علامة أخرى. تحدّد طريقة إنشاء علامات متقدّمة طريقة عمل سلوك التصادم:
يُشار إلى العلامات المتقدّمة التي تم إنشاؤها باستخدام
BitmapDescriptorFactory
بالعلامات النقطية. يتم رسم هذه العلامات بواسطة الخريطة الأساسية.يُشار إلى جميع العلامات المتقدّمة الأخرى، بما في ذلك تلك التي تم إنشاؤها باستخدام طريقة
AdvancedMarkerOptions.iconView()
، باسم علامات العرض ويتم رسمها على طبقة أعلى الخريطة الأساسية.
لضبط سلوك التصادم، اضبط
AdvancedMarkerOptions.collisionBehavior
على إحدى القيم التالية:
-
CollisionBehavior.REQUIRED
: (القيمة التلقائية) يتم عرض العلامة دائمًا بغض النظر عن التداخل. CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
عرض العلامة دائمًا بغض النظر عن التعارض، وإخفاء أي علامات أو تصنيفاتOPTIONAL_AND_HIDES_LOWER_PRIORITY
تتداخل مع العلامةCollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
لا تعرض العلامة إلا إذا كانت لا تتداخل مع علامات أخرى.إذا تداخلت علامتان bitmap، سيتم عرض العلامة التي تحمل قيمة
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")
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);