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