إدارة العلامات والتصنيفات وتعارض نقاط الاهتمام

توضّح لك هذه الصفحة كيفية إدارة حالات التعارض بين العلامات التي تضيفها إلى خريطتك والتصنيفات التلقائية، مثل نقاط الاهتمام أو أسماء الشوارع.

قبل البدء

لإدارة تداخلات العلامات والتصنيفات، يجب استخدام معرّف خريطة.

إذا كنت تستخدم صورة نقطية لخريطة من خلال الوضع البسيط، لا يمكنك إدارة تداخل العلامات والتصنيفات.

تحديد أولويات العلامات

استخدِم 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);