collisionBehavior 속성을 다음 값 중 하나로 설정하여 마커가 다른 마커 또는 지도 라벨과 충돌할 때의 동작을 지정할 수 있습니다.
REQUIRED: 충돌과 관계없이 항상 마커를 표시해야 합니다.REQUIRED_AND_HIDES_OPTIONAL: 충돌과 관계없이 항상 마커를 표시해야 합니다.OPTIONAL_AND_HIDES_LOWER_PRIORITY충돌 동작이 있는 마커 또는 이 마커와 겹치는 기본 지도 라벨은 숨겨집니다.OPTIONAL_AND_HIDES_LOWER_PRIORITY: 마커는 다른 마커와 겹치지 않는 경우에만 표시해야 합니다. 이 유형의 마커 두 개가 겹치면 그리기 순서가 더 높은 마커가 표시됩니다. 그리기 순서가 동일하면 세로 화면 위치가 더 낮은 마커가 표시됩니다.
다음 코드 샘플은 각 충돌 동작 값을 보여줍니다. 이 코드 샘플을 사용하려면 설정 및 앱에 3D 지도 추가의 안내에 따라 기본 3D 지도로 Android 스튜디오 프로젝트를 설정하세요. 그런 다음 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
})