2014-10-06 25 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(); 
    } 
}