หน้านี้แสดงวิธีควบคุมลักษณะการทำงานของการทับซ้อนสำหรับเครื่องหมาย
ตั้งค่าลักษณะการทำงานเมื่อเครื่องหมายทับซ้อนกัน
ลักษณะการทำงานเมื่อเกิดการทับซ้อนจะควบคุมวิธีที่เครื่องหมายแสดงหากทับซ้อนกับเครื่องหมายอื่น วิธีสร้างเครื่องหมายขั้นสูง จะกำหนดลักษณะการทำงานของการชนกัน
- เครื่องหมายขั้นสูงที่สร้างขึ้นโดยใช้ - BitmapDescriptorFactoryเรียกว่าเครื่องหมายบิตแมป เครื่องหมายเหล่านี้วาดโดย แผนที่หลัก
- เครื่องหมายขั้นสูงอื่นๆ ทั้งหมด รวมถึงเครื่องหมายที่สร้างขึ้นโดยใช้ - AdvancedMarkerOptions.iconView()จะเรียกว่าเครื่องหมายมุมมอง และจะวาดบนเลเยอร์เหนือแผนที่หลัก
หากต้องการตั้งค่าลักษณะการทำงานเมื่อเกิดการชนกัน ให้ตั้งค่า
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 ของเครื่องหมาย
- หากเครื่องหมายดู 2 รายการซ้อนทับกัน ระบบจะแสดงเครื่องหมายที่มี - zIndexสูงกว่า หากมี- zIndexเหมือนกัน เครื่องหมายที่สร้างล่าสุด จะทับซ้อนกับเครื่องหมายที่สร้างก่อนหน้านั้น
- เนื่องจากตัวทำเครื่องหมายมุมมองวาดบนเลเยอร์เหนือตัวทำเครื่องหมายบิตแมป ตัวทำเครื่องหมายมุมมองจึงซ้อนทับตัวทำเครื่องหมายบิตแมป ดังนั้น คุณควรพยายาม ใช้เครื่องหมายประเภทเดียวกันเพื่อควบคุมการชนกันได้ดีขึ้น 
 
ตัวอย่างต่อไปนี้แสดงการตั้งค่าลักษณะการทำงานเมื่อเครื่องหมายชนกัน
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);