【发布时间】:2019-10-10 09:24:02
【问题描述】:
我的自定义标记有问题,我想将其设置为集群标记(制造商组),但它不起作用,我在 Google 地图中找到了所有标记,所以即使我使用clusterManager 来处理这种情况我无法得到想要的结果:
public MyClusterManagerRenderer(Context context, GoogleMap googleMap,
ClusterManager<ClusterMarker> clusterManager) {//initialize
}
@Override
protected void onBeforeClusterItemRendered(ClusterMarker item, MarkerOptions markerOptions) {
imageView.setImageResource(item.getIconPicture());
Bitmap icon = iconGenerator.makeIcon();
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon)).title(item.getTitle());
}
@Override
protected void onBeforeClusterRendered(Cluster<ClusterMarker> cluster,
MarkerOptions markerOptions) {
iconGenerator.setBackground(null);
Bitmap icon = iconGenerator.makeIcon(String.valueOf(cluster
.getSize()));
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon));
}
@Override
protected boolean shouldRenderAsCluster(Cluster cluster) {
return false;
}
在我的 GoogleMapsFragment 中,我有这种方法来绘制标记:
private void addMapMarkers(List<Place> places){ if(places != null && !places.isEmpty() && googleMap != null) { mClusterManager = new ClusterManager<ClusterMarker>(getActivity(), googleMap); mClusterManagerRenderer = new MyClusterManagerRenderer(getActivity(),googleMap,mClusterManager); mClusterManager.setRenderer(mClusterManagerRenderer); for(Place p: places){ try{ ClusterMarker newClusterMarker = null; if(p != null) { newClusterMarker = new ClusterMarker(new LatLng(Double.parseDouble(p.getLocation().getLat()),Double.parseDouble(p.getLocation().getLng())), p.getName(), sn-p, 头像, p); }
if (newClusterMarker != null) { mClusterManager.addItem(newClusterMarker); mClusterMarkers.add(newClusterMarker); } }catch (NullPointerException e){ Log.e(TAG, "7 : "+"addMapMarkers: NullPointerException: " + e.getMessage() ); } } mClusterManager.cluster(); googleMap.moveCamera(prepareCameraForMap(places)); } else Log.e(TAG, "9 : Markers not drawed googleMap is null"); }
【问题讨论】:
-
能否请您发布您的完整代码,以便我们可以从我们这边重现此问题?
-
我从
MyClusterManagerRenderer中删除了这个方法:shouldRenderAsCluster(Cluster cluster)然后,我的代码运行良好。谢谢 -
感谢您的更新。很高兴听到您解决了自己的问题!我建议接受你自己的答案。
标签: android google-maps google-maps-markers