توضّح لك هذه الصفحة كيفية إدارة حالات التعارض بين العلامات التي تضيفها إلى خريطتك والتصنيفات التلقائية، مثل نقاط الاهتمام أو أسماء الشوارع.
قبل البدء
لإدارة تداخلات العلامات والتصنيفات، يجب استخدام معرّف خريطة.
إذا كنت تستخدم صورة نقطية لخريطة من خلال الوضع البسيط، لا يمكنك إدارة تداخل العلامات والتصنيفات.تحديد أولويات العلامات
استخدِم Marker.استخدِم السمة CollisionBehavior لتحديد الأولوية على علامة.
استخدِم إحدى القيم التالية:
REQUIRED: تلقائي يتطلّب عرض علامة تتداخل مع علامات وتصنيفات ونقاط اهتمام أخرى.OPTIONAL_AND_HIDES_LOWER_PRIORITY- تشير إلى أنّه يمكن استبدال العلامة أو أن تتداخل مع علامة مطلوبة، أو أن يتم استبدالها بعلامةOPTIONAL_AND_HIDES_LOWER_PRIORITYذات أولوية أعلى. استخدِمzIndexللمساعدة في تحديد الأولوية النسبية بين علاماتOPTIONAL_AND_HIDES_LOWER_PRIORITY. تشير القيمة الأعلىzIndexإلى أولوية أعلى.REQUIRED_AND_HIDES_OPTIONAL- يتطلّب عرض علامة مع إخفاء أي علامات أو تصنيفات أو نقاط اهتمامOPTIONAL_AND_HIDES_LOWER_PRIORITYتتداخل مع العلامة. قد تتداخل العلامة مع علامات أخرى مطلوبة.
يوضّح مثال الرمز التالي كيفية ضبط CollisionBehavior لعلامة جديدة:
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);