בדף הזה מוסבר איך לנהל התנגשויות בין סמנים שמוסיפים למפה לבין תוויות ברירת המחדל, כמו נקודות עניין (POI) או שמות רחובות.
לפני שמתחילים
כדי לנהל התנגשויות בין סמנים לבין תוויות, צריך להשתמש במזהה מפה.
אם אתם משתמשים בתמונה בפורמט בייטמאפ של מפה דרך מצב בסיסי, אי אפשר לנהל התנגשויות בין סמנים לבין תוויות.ציון סדר העדיפויות של סמנים
משתמשים ב-Marker
.CollisionBehavior
כדי לציין את רמת העדיפות של סמן.
משתמשים באחד מהערכים הבאים:
REQUIRED
– ברירת המחדל. נדרשת הצגה של סמן שחופף לסימנים, לתוויות ולנקודות עניין אחרות.OPTIONAL_AND_HIDES_LOWER_PRIORITY
– סימן לכך שסימן ה-marker עשוי להיות מוחלף על ידי סימן נדרש, או להימצא בקטעים חופפים לסימן נדרש, או להיות מוחלף על ידי סימן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);