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

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

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

כדי לנהל התנגשויות של סמנים ותוויות, עליך להשתמש map id (מזהה המפה).

אם משתמשים בתמונת מפת סיביות של מפה במצב Lite, לא ניתן ניהול התנגשויות של סמנים ותוויות.

ציון עדיפויות הסמנים

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