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

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

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

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

หากใช้รูปภาพบิตแมปของแผนที่ผ่านโหมด 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 ป้ายกํากับ หรือจุดที่น่าสนใจที่ทับซ้อนกับเครื่องหมาย เครื่องหมายอาจทับซ้อนกับเครื่องหมายอื่นๆ ที่ต้องระบุ

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