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