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