刷新集群管理器上的标记

时间:2014-10-06 17:37:00

标签: android google-maps markerclusterer

当用户导航地图时,应用会获得新的位置供他查看。但是地图并没有使用新标记刷新。

收到带有地点的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();
    }
}

第一个请求让他们好,但第二个请求什么也没做。

2 个答案:

答案 0 :(得分:13)

使用:

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();
    }
}

答案 1 :(得分:0)

我用这个解决方案解决了我的问题。 它不太优雅,但XYZ Communiccacion对我不起作用

private void setMarkers(JSONObject response){

mClusterManager.clearItems();
**mClusterManager.cluster();** 

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();
}

  **new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            mClusterManager.cluster();
        }
    }, 100);**

}