Sie können festlegen, wie sich eine Markierung verhalten soll, wenn sie mit einer anderen
Markierung oder einem Kartenlabel kollidiert. Dazu legen Sie die
collisionBehavior
Eigenschaft auf einen der folgenden Werte fest:
REQUIRED: Die Markierung wird immer angezeigt, unabhängig von Kollisionen.REQUIRED_AND_HIDES_OPTIONAL: Die Markierung wird immer angezeigt, unabhängig von Kollisionen. Markierungen mit dem KonfliktverhaltenOPTIONAL_AND_HIDES_LOWER_PRIORITYoder die Standardkartenlabels, die sich mit dieser Markierung überschneiden, werden ausgeblendet.OPTIONAL_AND_HIDES_LOWER_PRIORITY: Die Markierung wird nur angezeigt, 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.
Das folgende Codebeispiel veranschaulicht die einzelnen Werte für das Konfliktverhalten. Wenn Sie dieses Codebeispiel verwenden möchten, folgen Sie der Anleitung unter
Einrichtung und 3D-Karte zur App hinzufü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
})