หน้านี้จะแสดงวิธีควบคุมลักษณะการชนกันของเครื่องหมาย
ตั้งค่าลักษณะการชนให้กับเครื่องหมาย
ลักษณะการชนจะควบคุมลักษณะที่เครื่องหมายแสดงเมื่อเกิดการชน (ทับซ้อนกัน) ด้วยเครื่องหมายอื่น วิธีสร้างเครื่องหมายขั้นสูง จะกำหนดลักษณะการทำงานของการซ้อนทับ ดังนี้
เครื่องหมายขั้นสูง สร้างโดยใช้
BitmapDescriptorFactory
เรียกว่าเครื่องหมายบิตแมป เครื่องหมายเหล่านี้วาดโดย แผนที่หลักเครื่องหมายขั้นสูงอื่นๆ ทั้งหมด รวมถึงเครื่องหมายที่สร้างโดย โดยใช้เมธอด
AdvancedMarkerOptions.iconView()
จะเรียกว่า เครื่องหมาย view และถูกวาดบนเลเยอร์เหนือแผนที่หลัก
หากต้องการตั้งค่าลักษณะการซ้อนทับ ให้ตั้งค่า
AdvancedMarkerOptions.collisionBehavior
เป็นอย่างใดอย่างหนึ่งต่อไปนี้
CollisionBehavior.REQUIRED
: (ค่าเริ่มต้น) แสดงเครื่องหมายทุกครั้งโดยไม่คำนึงว่า ที่จะเกิดการชนกันCollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
แสดงเครื่องหมายเสมอ โดยไม่คำนึงถึงการชน และซ่อนOPTIONAL_AND_HIDES_LOWER_PRIORITY
เครื่องหมายหรือป้ายกำกับที่จะเหลื่อมซ้อนกับเครื่องหมายCollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
แสดงเครื่องหมาย เฉพาะเมื่อไม่ซ้อนทับกับเครื่องหมายอื่นๆหากเครื่องหมายบิตแมป 2 ตัวทับซ้อนกัน เครื่องหมายที่มี
zIndex
สูงกว่าคือ แสดงอยู่ หากอุปกรณ์มีzIndex
เหมือนกัน รายการที่มีหน้าจอแนวตั้งด้านล่าง แสดงอยู่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับzIndex
โปรดดูที่เครื่องหมาย z-index.หากเครื่องหมายมุมมอง 2 รายการทับซ้อนกัน เครื่องหมายที่มี
zIndex
ที่สูงกว่า แสดงอยู่ หากมีzIndex
เหมือนกัน เครื่องหมายที่สร้างล่าสุด ทับซ้อนกับเครื่องหมายที่สร้างขึ้นก่อนหน้าเนื่องจากเครื่องหมาย view ถูกวาดบนเลเยอร์เหนือเครื่องหมาย bitmap เครื่องหมาย view ทับซ้อนกับเครื่องหมาย bitmap ดังนั้น คุณควรลอง ใช้เครื่องหมายประเภทเดียวกันเพื่อการควบคุมการชนที่ดีขึ้น
ตัวอย่างต่อไปนี้แสดงลักษณะการชนกันของเครื่องหมาย
Kotlin
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible val collisionBehavior: Int = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
Java
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL; AdvancedMarkerOptions options = new AdvancedMarkerOptions() .position(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);