如要指定標記與其他標記或地圖標籤衝突時應呈現的行為,請將 collisionBehavior
屬性設為下列其中一個值:
REQUIRED
:無論是否發生衝突,標記一律會顯示。REQUIRED_AND_HIDES_OPTIONAL
:無論是否發生衝突,標記一律會顯示。如果標記有OPTIONAL_AND_HIDES_LOWER_PRIORITY
碰撞行為,或與這個標記重疊,系統就會隱藏標記。OPTIONAL_AND_HIDES_LOWER_PRIORITY
:標記只會在沒有重疊情況時顯示。如果這個類型的兩個標記重疊,系統會顯示繪製順序較高的標記。如果兩者的繪製順序相同,系統會顯示直向畫面位置較低的標記。
下列程式碼範例會示範每個碰撞行為值。如要使用這個程式碼範例,請按照「設定」和「在應用程式中加入 3D 地圖」中的操作說明,在 Android Studio 專案中設定基本 3D 地圖。然後將下列程式碼新增至 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 })