Uni*_*121 8 java android google-maps google-maps-api-3 markerclusterer
我正在尝试使用来自服务器的更新数据更新我的地图,但我无法弄清楚如何从地图中删除旧项目(标记和群集 - 使用ClusterManager)( - 在我看来,我只能在ClusterManager中添加.
我有BroadcastReceiver,当有新数据时它会获得意图.我正在尝试这样的事情:(但它在"... getMarkers().clear();"上给了我UnsupportedOperationException .
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());
}
};
Run Code Online (Sandbox Code Playgroud)
我添加的数据仅用于此功能.
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());
Run Code Online (Sandbox Code Playgroud)
我一直专注于ClusterManager,所以我忘记了GoogleMap,特别是方法clear().我能用这段代码解决问题:
mGoogleMap.clear();
mClusterManager.clearItems(); // calling just in case (may not be needed)
mClusterManager.addItems(LocationGetter.getReports());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7413 次 |
| 最近记录: |