אפשר לציין איך סמן צריך להתנהג כשהוא מתנגש עם סמן אחר או עם תווית במפה. לשם כך, מגדירים את המאפיין collisionBehavior לאחד מהערכים הבאים:
-
REQUIRED: הסמן צריך להיות מוצג תמיד, ללא קשר להתנגשויות. REQUIRED_AND_HIDES_OPTIONAL: הסמן צריך להיות מוצג תמיד, בלי קשר להתנגשויות. סמנים עםOPTIONAL_AND_HIDES_LOWER_PRIORITYהתנהגות התנגשות או תוויות המפה שמוגדרות כברירת מחדל וחופפות לסמן הזה יוסתר.-
OPTIONAL_AND_HIDES_LOWER_PRIORITY: הסמן יוצג רק אם הוא לא חופף לסמנים אחרים. אם שני סמנים מהסוג הזה חופפים, הסמן עם סדר הציור הגבוה יותר מוצג. אם יש להם אותו סדר ציור, מוצג הרכיב עם המיקום האנכי הנמוך יותר במסך.
בדוגמת הקוד הבאה מוצגים כל הערכים של התנהגות ההתנגשות. כדי להשתמש בדוגמת הקוד הזו, צריך לפעול לפי ההוראות שבמאמרים הגדרה והוספת מפה תלת-ממדית לאפליקציה כדי להגדיר את פרויקט Android Studio עם מפה תלת-ממדית בסיסית. לאחר מכן, מוסיפים את הקוד הבא לקובץ MainActivity.kt:
// Add imports
import com.google.android.gms.maps3d.model.latLngAltitude
...
// Marker 1: REQUIRED
googleMap3D.addMarker(markerOptions {
position = latLngAltitude {
latitude = 52.52027645136134
longitude = 13.408271658592406
altitude = 0.0
}
label = "Collision Behavior: REQUIRED"
altitudeMode = AltitudeMode.CLAMP_TO_GROUND
isExtruded = true
isDrawnWhenOccluded = true
collisionBehavior = CollisionBehavior.REQUIRED
})
// Marker 2: REQUIRED_AND_HIDES_OPTIONAL
googleMap3D.addMarker(markerOptions {
position = latLngAltitude {
latitude = 52.519605780912585
longitude = 13.406867190588198
altitude = 150.0
}
label = "Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL"
altitudeMode = AltitudeMode.ABSOLUTE
isExtruded = true
isDrawnWhenOccluded = true
collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})
// Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY
googleMap3D.addMarker(markerOptions {
position = latLngAltitude {
latitude = 52.519882191069016
longitude = 13.407410777254293
altitude = 50.0
}
label = "Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY"
altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
isExtruded = true
isDrawnWhenOccluded = true
collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
})