我正在使用android maps utils在Google maps API v2上聚类标记.它工作正常,但当我添加2000个标记时,在最大缩放时它仍然是聚类的(标记仍然有数字):
这是我用标记填充地图的方法:
public voID getRiverData(String state, String type) { URL = getResources().getString(R.string.base_url) + state + "/" + type + getResources().getString(R.string.end_url); SimpleXmlRequest<XMLData> simpleRequest = new SimpleXmlRequest<XMLData>( URL, XMLData.class, new Response.Listener<XMLData>() { @OverrIDe public voID onResponse(XMLData response) { // Initialize the manager with the context and the map. // (Activity extends context, so we can pass 'this' in // the constructor.) mClusterManager = new ClusterManager<MarkerItem>( getActivity(), map); mClusterManager.setRenderer(new ClusterRenderer( getActivity(), map, mClusterManager)); // response Object waterItemsList = response.getNews(); for (News item : waterItemsList) { if (item.getRiver_name() != null && item.getRiver_name() != "") { water_level_value = item.getWater_level_value(); if (water_level_value != null && !water_level_value.equals(0) && !water_level_value.equals("")) { MarkerItem offsetItem = new MarkerItem(item); mClusterManager.addItem(offsetItem); } map.setonMarkerClickListener(mClusterManager); map.setInfoWindowAdapter(new InfoWindowAdapter() { @OverrIDe public VIEw getInfoWindow(Marker marker) { return null; } @OverrIDe public VIEw getInfoContents(Marker marker) { try { VIEw v = getActivity() .getLayoutInflater() .inflate( R.layout.marker_info, null); TextVIEw Title = (TextVIEw) v .findVIEwByID(R.ID.tvMarkerTitle); TextVIEw info = (TextVIEw) v .findVIEwByID(R.ID.tvMarkerInfo); Title.setText(marker.getTitle() .toString()); info.setText(marker.getSnippet() .toString()); return v; } catch (Exception e) { // kliknięcIE w cluster return null; } } }); } } map.setonCamerachangelistener(mClusterManager); map.setonInfoWindowClickListener(mClusterManager); mClusterManager.cluster(); } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { // error Object error.printstacktrace(); } }); AppController.getInstance().addToRequestQueue(simpleRequest);}
谁能帮我?为什么不起作用?
解决方法:
您可以扩展DefaultClusterRenderer类并将最小标记设置为cluster.
public class InfoMarkerRenderer extends DefaultClusterRenderer<MyCustomMarker> {public InfoMarkerRenderer(Context context, GoogleMap map, ClusterManager<MyCustomMarker> clusterManager) { super(context, map, clusterManager); //constructor}@OverrIDeprotected voID onBeforeClusterItemRendered(final MyCustomMarker infomarker, MarkerOptions markerOptions) { // you can change marker options}@OverrIDeprotected boolean shouldRenderAsCluster(Cluster cluster) { return cluster.getSize() > 5; // if markers <=5 then not clustering}}
总结 以上是内存溢出为你收集整理的android – 地图聚类 – 最大缩放标记仍然聚集全部内容,希望文章能够帮你解决android – 地图聚类 – 最大缩放标记仍然聚集所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)