בדף הזה מוסבר איך לנהל התנגשויות בין סמנים שמוסיפים למפה לבין תוויות ברירת מחדל, כמו נקודות עניין (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);