Konfliktverhalten

Plattform auswählen: Android iOS JavaScript

Auf dieser Seite erfahren Sie, wie Sie das Konfliktverhalten einer Markierung steuern können.

Konfliktverhalten für eine Markierung konfigurieren

Über das Konfliktverhalten wird festgelegt, wie eine Markierung angezeigt werden soll, wenn sie sich mit einer anderen Markierung überschneidet. Das Konfliktverhalten richtet sich danach, wie eine erweiterte Markierung erstellt wird:

  • Erweiterte Markierungen, die mit BitmapDescriptorFactory erstellt werden, werden als Bitmap-Markierungen bezeichnet. Sie werden von der Basiskarte gezeichnet.

  • Alle anderen erweiterten Markierungen, auch die, die mit der Methode AdvancedMarkerOptions.iconView() erstellt werden, werden als View-Markierungen bezeichnet und auf einer Ebene oberhalb der Basiskarte gezeichnet.

Um das Konfliktverhalten zu konfigurieren, legen Sie einen der folgenden Werte für AdvancedMarkerOptions.collisionBehavior fest:

  • CollisionBehavior.REQUIRED: Das ist die Standardeinstellung, bei der die Markierung immer angezeigt wird, auch bei Konflikten mit anderen Markierungen.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL: Die Markierung wird unabhängig von Konflikten mit anderen Markierungen immer angezeigt. OPTIONAL_AND_HIDES_LOWER_PRIORITY-Markierungen oder Labels, die sich mit ihr überschneiden würden, werden ausgeblendet.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY: Die Markierung wird nur dann angezeigt, wenn sie sich nicht mit anderen Markierungen überschneidet.

    • Wenn sich zwei Bitmap-Markierungen überschneiden, wird die mit dem höheren zIndex angezeigt. Falls beide denselben zIndex haben, wird die Markierung mit der niedrigeren vertikalen Bildschirmposition angezeigt. Weitere Informationen zum zIndex finden Sie unter Z-Index der Markierung.

    • Wenn sich zwei View-Markierungen überschneiden, wird die Markierung mit dem höheren zIndex angezeigt. Falls beide denselben zIndex haben, überlagert die neueste Markierung alle Markierungen, die vor ihr erstellt wurden.

    • Da View-Markierungen auf einer Ebene über Bitmap-Markierungen gezeichnet werden, überlagern View-Markierungen Bitmap-Markierungen. Um ein besseres Konfliktverhalten zu erreichen, sollten Sie daher versuchen, nur Markierungen eines Typs zu verwenden.

Das folgende Beispiel zeigt, wie das Konfliktverhalten für eine Markierung konfiguriert wird:

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 = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions()
    .position(latLng)
    .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)

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(latLng)
            .collisionBehavior(collisionBehavior);
Marker marker = map.addMarker(options);