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