การจัดการเครื่องหมาย ป้ายกำกับ และการชนจุดที่น่าสนใจ

หน้านี้จะแสดงวิธีจัดการการชนกันระหว่างเครื่องหมายที่คุณเพิ่มลงในแผนที่กับป้ายกำกับเริ่มต้น เช่น จุดที่น่าสนใจ (POI) หรือชื่อถนน

ก่อนเริ่มต้น

หากต้องการจัดการการชนกันของเครื่องหมายและป้ายกำกับ คุณต้องใช้a รหัสแผนที่

หากใช้รูปภาพบิตแมปของแผนที่ผ่าน โหมด Lite คุณจะ จัดการการชนกันของเครื่องหมายและป้ายกำกับไม่ได้

การระบุลำดับความสำคัญของเครื่องหมาย

ใช้พร็อพเพอร์ตี้ Marker.CollisionBehavior เพื่อระบุลำดับความสำคัญของเครื่องหมาย

โปรดใช้ค่าใดค่าหนึ่งต่อไปนี้

  • REQUIRED - ค่าเริ่มต้น กำหนดให้แสดงเครื่องหมายที่ทับซ้อนกับเครื่องหมาย ป้ายกำกับ และ POI อื่นๆ
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY - ระบุว่าเครื่องหมายอาจถูกแทนที่หรือ ทับซ้อนโดยเครื่องหมายที่จำเป็น หรือถูกแทนที่ด้วยเครื่องหมาย OPTIONAL_AND_HIDES_LOWER_PRIORITY ที่มีลำดับความสำคัญสูงกว่า ใช้ zIndex เพื่อช่วยกำหนดลำดับความสำคัญสัมพัทธ์ระหว่างเครื่องหมาย OPTIONAL_AND_HIDES_LOWER_PRIORITY ค่า zIndex ที่สูงขึ้นแสดงถึงลำดับความสำคัญที่สูงขึ้น
  • REQUIRED_AND_HIDES_OPTIONAL - กำหนดให้แสดงเครื่องหมายขณะที่ซ่อน เครื่องหมาย ป้ายกำกับ หรือ POI OPTIONAL_AND_HIDES_LOWER_PRIORITY ที่ทับซ้อนกับ เครื่องหมาย เครื่องหมายอาจทับซ้อนกับเครื่องหมายที่จำเป็นอื่นๆ

ตัวอย่างโค้ดต่อไปนี้แสดงการตั้งค่า 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);