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