Konfliktverhalten von Markierungen konfigurieren

Plattform auswählen: Android iOS JavaScript

Sie können festlegen, was passieren soll, wenn sich eine Markierung mit einer anderen Markierung oder einem Label überschneidet. Setzen Sie dazu die Eigenschaft collisionBehavior auf einen der folgenden Werte:

  • REQUIRED: Die Markierung soll unabhängig von Konflikten immer angezeigt werden.
  • REQUIRED_AND_HIDES_OPTIONAL: Die Markierung soll unabhängig von Konflikten immer angezeigt werden. Bei Markierungen mit dem Kollisionsverhalten OPTIONAL_AND_HIDES_LOWER_PRIORITY werden die Standardkartenlabels, die sich mit dieser Markierung überschneiden, ausgeblendet.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: Die Markierung sollte nur angezeigt werden, wenn sie sich nicht mit anderen Markierungen überschneidet. Wenn sich zwei Markierungen dieses Typs überschneiden, wird die Markierung mit der höheren Zeichenreihenfolge angezeigt. Falls beide dieselbe Zeichenreihenfolge haben, wird die Markierung mit der niedrigeren vertikalen Bildschirmposition angezeigt.

Im folgenden Codebeispiel werden die einzelnen Werte für das Kollisionsverhalten veranschaulicht. Wenn Sie dieses Codebeispiel verwenden möchten, folgen Sie der Anleitung unter Einrichtung und 3D-Karte in Ihre App einfügen, um Ihr Android Studio-Projekt mit einer einfachen 3D-Karte einzurichten. Fügen Sie dann der Datei MainActivity.kt den folgenden Code hinzu:

// Add imports
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Marker 1: REQUIRED
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.52027645136134
        longitude = 13.408271658592406
        altitude = 0.0
    }
    label = "Collision Behavior: REQUIRED"
    altitudeMode = AltitudeMode.CLAMP_TO_GROUND
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED
})

// Marker 2: REQUIRED_AND_HIDES_OPTIONAL
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519605780912585
        longitude = 13.406867190588198
        altitude = 150.0
    }
    label = "Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL"
    altitudeMode = AltitudeMode.ABSOLUTE
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})

// Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519882191069016
        longitude = 13.407410777254293
        altitude = 50.0
    }
    label = "Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY"
    altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
})