設定標記衝突行為

選取平台: Android iOS JavaScript

如要指定標記與其他標記或地圖標籤衝突時應呈現的行為,請將 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
})