Tôi cố gắng để cập nhật bản đồ của tôi với dữ liệu mới từ máy chủ nhưng tôi không thể tìm ra cách để xoá các mục cũ (dấu và cụm - Sử dụng ClusterManager) từ bản đồ (- dường như với tôi rằng tôi chỉ có thể thêm vào ClusterManagerLàm thế nào cập nhật đánh dấu trên bản đồ khi sử dụng ClusterManager
tôi có BroadcastReceiver đó có được ý định khi có dữ liệu mới, tôi đã cố gắng một cái gì đó như thế này: (nhưng nó mang lại cho tôi UnsupportedOperationException trên phù hợp với " .... .getMarkers(). clear(); "
private BroadcastReceiver myRefrestMapBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive");
mClusterManager.clearItems();
mClusterManager.getMarkerCollection().getMarkers().clear();
mClusterManager.getClusterMarkerCollection().getMarkers().clear();
mClusterManager.addItems(LocationGetter.getReports());
}
};
I đã thêm dữ liệu vào bản đồ chỉ với chức năng này.
java.util.Collection<Marker> userCollection = mClusterManager.getMarkerCollection().getMarkers();
ArrayList<Marker> userList = new ArrayList<Marker>(userCollection);
// now is userList empty
for(Marker marker: userList){
marker.remove();
}
java.util.Collection<Marker> userCollection2 = mClusterManager.getClusterMarkerCollection().getMarkers();
ArrayList<Marker> userList2 = new ArrayList<Marker>(userCollection2);
// now is userList2 empty
for(Marker marker: userList2){
marker.remove();
}
mClusterManager.addItems(LocationGetter.getReports());
Tôi đã sử dụng phương pháp ở đây Nếu bạn nhận được 'ArrayList' trống, hãy đảm bảo bạn đã sửa' ClusterManager' và 'MarkerCollection()'. – bjiang