2014-10-06 50 views
2

当用户导航地图时,应用程序将获取新地点供他看。但是地图并没有用新的标记刷新。刷新群集管理器上的标记

在接收到带有地点的JSON后,此方法将它们放在地图上。

private void setMarkers(JSONObject response) { 

    mClusterManager.clearItems(); 

    try { 
     JSONArray venues = response.getJSONArray("venues"); 

     for (int i = 0; i < venues.length(); i++) { 
      Venue venue = new Gson().fromJson(venues.getJSONObject(i).toString(), Venue.class); 
      MarkerItem marker = new MarkerItem(venue.getLat(), venue.getLng(), venue, R.drawable.pin_quente); 
      mClusterManager.addItem(marker); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

第一个请求使他们确定,但第二个请求没有做任何事。

回答

11

使用:

mClusterManager.cluster();

添加标记后。

private void setMarkers(JSONObject response) { 

    mClusterManager.clearItems(); 

    try { 
     JSONArray venues = response.getJSONArray("venues"); 

     for (int i = 0; i < venues.length(); i++) { 
      Venue venue = new Gson().fromJson(venues.getJSONObject(i).toString(), Venue.class); 
      MarkerItem marker = new MarkerItem(venue.getLat(), venue.getLng(), venue, R.drawable.pin_quente); 
      mClusterManager.addItem(marker); 
     } 

     mClusterManager.cluster(); 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
}