หน้านี้แสดงวิธีจัดการการชนกันระหว่างเครื่องหมายที่คุณเพิ่มลงในแผนที่กับป้ายกำกับเริ่มต้น เช่น จุดที่น่าสนใจ (POI) หรือชื่อถนน
ก่อนเริ่มต้น
หากต้องการจัดการการทับซ้อนกันของเครื่องหมายและป้ายกำกับ คุณต้องใช้รหัสแผนที่
หากใช้ภาพบิตแมปของแผนที่ผ่านโหมด Lite คุณจะจัดการการทับซ้อนกันของเครื่องหมายและป้ายกำกับไม่ได้การระบุลำดับความสำคัญของเครื่องหมาย
ใช้Markerพร็อพเพอร์ตี้ CollisionBehavior เพื่อระบุลำดับความสำคัญของเครื่องหมาย
โปรดใช้ค่าใดค่าหนึ่งต่อไปนี้
REQUIRED- ค่าเริ่มต้น ต้องแสดงเครื่องหมายที่ทับซ้อนกับเครื่องหมาย ป้ายกำกับ และจุดที่น่าสนใจอื่นๆOPTIONAL_AND_HIDES_LOWER_PRIORITY- บ่งชี้ว่าเครื่องหมายอาจถูกแทนที่หรือทับซ้อนโดยเครื่องหมายที่จำเป็น หรือถูกแทนที่ด้วยเครื่องหมายOPTIONAL_AND_HIDES_LOWER_PRIORITYที่มีลำดับความสำคัญสูงกว่า ใช้zIndexเพื่อช่วยกำหนดลำดับความสำคัญที่เกี่ยวข้องระหว่างเครื่องหมายOPTIONAL_AND_HIDES_LOWER_PRIORITYค่าzIndexที่สูงขึ้นหมายถึงลำดับความสำคัญที่สูงขึ้นREQUIRED_AND_HIDES_OPTIONAL- กำหนดให้แสดงเครื่องหมายขณะซ่อนเครื่องหมายOPTIONAL_AND_HIDES_LOWER_PRIORITYป้ายกำกับ หรือ POI ที่ทับซ้อนกับเครื่องหมาย เครื่องหมายอาจทับซ้อนกับเครื่องหมายอื่นๆ ที่จำเป็น
ตัวอย่างโค้ดต่อไปนี้แสดงการตั้งค่า CollisionBehavior สำหรับเครื่องหมายใหม่
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);