管理标记、标签和地图注点之间的冲突问题

此页面介绍了如何管理您添加到地图上的标记与默认标签(例如地图注点 [POI] 或街道名称)之间的冲突问题。

准备工作

如需管理标记与标签之间的冲突问题,您必须使用地图 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

Java

Marker marker = map.addMarker(
    new MarkerOptions()
        .position(new LatLng(10, 10))
        .zIndex(10) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY));
      

Kotlin

val marker = map.addMarker(
    MarkerOptions()
        .position(LatLng(10.0, 10.0))
        .zIndex(10f) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY)
)