配置标记冲突行为

请选择平台: Android iOS JavaScript

您可以将 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
})