Konfigurowanie zachowania w przypadku kolizji znaczników

Wybierz platformę: Android iOS JavaScript

Możesz określić, jak znacznik ma się zachowywać, gdy zderzy się z innym znacznikiem lub etykietą mapy. W tym celu ustaw właściwość collisionBehavior na jedną z tych wartości:

  • REQUIRED: znacznik powinien być zawsze wyświetlany niezależnie od kolizji.
  • REQUIRED_AND_HIDES_OPTIONAL: znacznik powinien być zawsze wyświetlany niezależnie od kolizji. Markery z OPTIONAL_AND_HIDES_LOWER_PRIORITYzachowaniem kolizji lub domyślne etykiety mapy, które nakładają się na ten marker, zostaną ukryte.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: znacznik powinien być wyświetlany tylko wtedy, gdy nie nakłada się na inne znaczniki. Jeśli 2 markery tego typu nakładają się na siebie, wyświetlany jest ten o wyższej kolejności rysowania. Jeśli mają tę samą kolejność rysowania, wyświetlana jest ta z niższym pionowym położeniem na ekranie.

Poniższy przykładowy kod pokazuje każdą z wartości zachowania w przypadku kolizji. Aby użyć tego przykładowego kodu, postępuj zgodnie z instrukcjami w sekcjach KonfiguracjaDodawanie mapy 3D do aplikacji, aby skonfigurować projekt Android Studio z podstawową mapą 3D. Następnie dodaj ten kod do pliku MainActivity.kt:

// 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
})