ניהול סמנים, תוויות והתנגשויות של נקודות עניין

בדף הזה מוסבר איך לנהל התנגשויות בין סמנים שמוסיפים למפה לבין תוויות ברירת מחדל, כמו נקודות עניין (POI) או שמות רחובות.

לפני שמתחילים

כדי לנהל התנגשויות בין סמנים לתוויות, צריך להשתמש במזהה מפה.

אם אתם משתמשים בתמונת מפת סיביות דרך מצב בסיסי, לא תוכלו לנהל התנגשויות בין סמנים לתוויות.

קביעת סדר העדיפויות של הסמנים

משתמשים ב-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);