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