กำหนดค่าลักษณะการทำงานเมื่อเครื่องหมายซ้อนทับกัน

เลือกแพลตฟอร์ม: Android iOS JavaScript

คุณระบุลักษณะการทำงานของเครื่องหมายเมื่อชนกับเครื่องหมายอื่นหรือป้ายกำกับแผนที่ได้โดยตั้งค่าพร็อพเพอร์ตี้ collisionBehavior เป็นค่าใดค่าหนึ่งต่อไปนี้

  • REQUIRED: เครื่องหมายควรแสดงเสมอไม่ว่าจะมีการทับซ้อนกันหรือไม่ก็ตาม
  • REQUIRED_AND_HIDES_OPTIONAL: เครื่องหมายควรแสดงเสมอไม่ว่าจะเกิดการทับซ้อนหรือไม่ก็ตาม ระบบจะซ่อนเครื่องหมายที่มีOPTIONAL_AND_HIDES_LOWER_PRIORITYลักษณะการทำงานของการชนกัน หรือป้ายกำกับเริ่มต้นของแผนที่ที่ทับซ้อนกับเครื่องหมายนี้
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: เครื่องหมายควรแสดงเฉพาะในกรณีที่ ไม่ทับซ้อนกับเครื่องหมายอื่นๆ หากเครื่องหมาย 2 รายการประเภทนี้ซ้อนทับกัน ระบบจะแสดงเครื่องหมายที่มี ลำดับการวาดสูงกว่า หากมีลำดับการวาดเดียวกัน ระบบจะแสดงรายการที่มี vertical screenposition ต่ำกว่า

ตัวอย่างโค้ดต่อไปนี้แสดงค่าลักษณะการทำงานเมื่อเกิดการชนกันแต่ละค่า หากต้องการใช้โค้ดตัวอย่างนี้ ให้ทําตามวิธีการใน การตั้งค่าและ เพิ่มแผนที่ 3 มิติลงในแอปเพื่อตั้งค่า โปรเจ็กต์ Android Studio ด้วยแผนที่ 3 มิติพื้นฐาน จากนั้นเพิ่มโค้ดต่อไปนี้ลงในไฟล์ 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
})