Trang này cho bạn biết cách quản lý các xung đột giữa các điểm đánh dấu mà bạn thêm vào bản đồ và nhãn mặc định, chẳng hạn như điểm yêu thích (POI) hoặc tên đường.
Trước khi bắt đầu
Để quản lý các xung đột điểm đánh dấu và nhãn, bạn phải sử dụng mã bản đồ.
Nếu đang sử dụng hình ảnh bitmap của bản đồ thông qua chế độ lite, bạn không thể quản lý các xung đột của điểm đánh dấu và nhãn.Chỉ định mức độ ưu tiên của điểm đánh dấu
Sử dụng Marker
.Thuộc tính CollisionBehavior
để chỉ định mức độ ưu tiên trên một điểm đánh dấu.
Hãy dùng một trong những giá trị sau:
REQUIRED
– Mặc định. Yêu cầu hiển thị một điểm đánh dấu trùng lặp với các điểm đánh dấu, nhãn và địa điểm yêu thích khác.OPTIONAL_AND_HIDES_LOWER_PRIORITY
– Cho biết điểm đánh dấu có thể được thay thế hoặc chồng chéo bởi một điểm đánh dấu bắt buộc hoặc được thay thế bằng một điểm đánh dấuOPTIONAL_AND_HIDES_LOWER_PRIORITY
có mức độ ưu tiên cao hơn. Sử dụngzIndex
để xác định mức độ ưu tiên tương đối giữa các điểm đánh dấuOPTIONAL_AND_HIDES_LOWER_PRIORITY
. Giá trịzIndex
càng cao thì mức độ ưu tiên càng cao.REQUIRED_AND_HIDES_OPTIONAL
– Yêu cầu hiển thị một điểm đánh dấu trong khi ẩn mọi điểm đánh dấu, nhãn hoặc POIOPTIONAL_AND_HIDES_LOWER_PRIORITY
trùng lặp với điểm đánh dấu đó. Điểm đánh dấu này có thể trùng lặp với các điểm đánh dấu bắt buộc khác.
Ví dụ về mã sau đây cho thấy cách đặt CollisionBehavior
cho một điểm đánh dấu mới:
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);