`collisionBehavior`
プロパティを次のいずれかの値に設定することで、別の
マーカーや地図ラベルと表示位置が重なった場合のマーカーの動作を指定できます。collisionBehavior
REQUIRED: 他のマーカーと重なっていても常に表示されます。REQUIRED_AND_HIDES_OPTIONAL: 他のマーカーと重なっていても常に表示されます。このマーカーと重なった場合の動作を持つマーカー、またはデフォルトの地図ラベルは非表示になります。OPTIONAL_AND_HIDES_LOWER_PRIORITYOPTIONAL_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
})