マーカー、ラベル、スポットの競合を管理する

このページでは、地図に追加するマーカーとデフォルト ラベル(スポットや道路名など)との間の競合を管理する方法について説明します。

始める前に

マーカーとラベルの競合を管理するには、マップ 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);