Đị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ó va chạm hay không.
  • REQUIRED_AND_HIDES_OPTIONAL: Điểm đánh dấu phải luôn xuất hiện bất kể có va chạm hay không. Các điểm đánh dấu có OPTIONAL_AND_HIDES_LOWER_PRIORITY trạng thái va chạm hoặc nhãn bản đồ mặc định trùng với điểm đánh dấu này sẽ bị ẩn.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: Điểm đánh dấu chỉ xuất hiện nếu không trùng với các điểm đánh dấu khác. Nếu 2 đ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 chúng có cùng thứ tự vẽ, thì điểm đánh dấu có vị trí dọc thấp hơn trên màn hình sẽ xuất hiện.

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