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 denselbenzIndex
haben, wird die Markierung mit der niedrigeren vertikalen Bildschirmposition angezeigt. Weitere Informationen zumzIndex
finden Sie unter Z-Index der Markierung.Wenn sich zwei View-Markierungen überschneiden, wird die Markierung mit dem höheren
zIndex
angezeigt. Falls beide denselbenzIndex
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);