Định cấu hình hành vi va chạm của điểm đánh dấu

Chọn nền tảng: Android iOS JavaScript

Bạn có thể chỉ định cách một điểm đánh dấu hoạt động khi va chạm với một điểm đánh dấu hoặc nhãn bản đồ khác bằng cách đặt thuộc tính collisionBehavior thành một trong các giá trị sau:

  • REQUIRED: Điểm đánh dấu phải luôn xuất hiện bất kể có xung đột hay không.
  • REQUIRED_AND_HIDES_OPTIONAL: Điểm đánh dấu phải luôn xuất hiện bất kể có xảy ra xung đột hay không. Các điểm đánh dấu có hành vi va chạm OPTIONAL_AND_HIDES_LOWER_PRIORITY hoặc các nhãn mặc định trên bản đồ trùng lặp với điểm đánh dấu này sẽ bị ẩn.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: Điểm đánh dấu chỉ được hiển thị nếu không trùng lặp với các điểm đánh dấu khác. Nếu hai điểm đánh dấu thuộc loại này trùng nhau, thì điểm đánh dấu có thứ tự vẽ cao hơn sẽ xuất hiện. Nếu có cùng thứ tự vẽ, thì thành phần có vị trí màn hình dọc thấp hơn sẽ xuất hiện.

Mã mẫu sau đây minh hoạ từng giá trị hành vi va chạm. Để sử dụng mã mẫu này, hãy làm theo hướng dẫn trong phần Thiết lậpThêm bản đồ 3D vào ứng dụng để thiết lập dự án Android Studio bằng một bản đồ 3D cơ bản. Sau đó, hãy thêm đoạn mã sau vào tệp 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
})