このページでは、地図に追加するマーカーとデフォルト ラベル(スポットや道路名など)との間の競合を管理する方法について説明します。
始める前に
マーカーとラベルの競合を管理するには、マップ ID を使用します。
ライトモード(地図のビットマップ画像)をご利用の場合、マーカーとラベルの競合を管理することはできません。マーカーの優先度を指定する
Marker
.CollisionBehavior
プロパティを使用して、マーカーの優先度を指定します。
次のいずれかの値を使用します。
REQUIRED
- デフォルトです。表示が必須のマーカーであることを示します。他のマーカー、ラベル、スポットと重ねて表示します。OPTIONAL_AND_HIDES_LOWER_PRIORITY
- マーカーを「表示が必須の」マーカーで置き換えるか重ねることができること、またはより優先度の高いOPTIONAL_AND_HIDES_LOWER_PRIORITY
マーカーで置き換えることができることを示します。zIndex
を使用して、OPTIONAL_AND_HIDES_LOWER_PRIORITY
マーカー間の相対的な優先度を決定します。zIndex
の値が高いほど優先度が高くなります。REQUIRED_AND_HIDES_OPTIONAL
- 表示が必須のマーカーであることを示します。このマーカーと重なるOPTIONAL_AND_HIDES_LOWER_PRIORITY
マーカー、ラベル、スポットは非表示にします。他の「表示が必須の」マーカーとは重ねることができます。
次のコードサンプルでは、新しいマーカーに CollisionBehavior
を設定しています。
Kotlin
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible val collisionBehavior: Int = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
Java
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL; AdvancedMarkerOptions options = new AdvancedMarkerOptions() .position(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);