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

หน้านี้แสดงวิธีจัดการการชนระหว่างเครื่องหมายที่คุณเพิ่ม ลงในแผนที่และป้ายกำกับเริ่มต้น เช่น จุดที่น่าสนใจ (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 ใดๆ ที่ซ้อนทับกับ สี เครื่องหมายอาจทับซ้อนกับเครื่องหมายอื่นๆ ที่จำเป็น

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