Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] web/email now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Java by Naveen Kumar M ( 8 years ago )
In MainActivity or Fragment : 
private void loadDataOnMap(List<Place> placeList, final boolean isFromSearch) {
        if (map != null) {
            map.clear();
            if (!isPagination) {
                markerObjectList = new ArrayList<>();
                CameraUpdate location = CameraUpdateFactory.newLatLngZoom(new LatLng(mLatitude, mLongitude), zoomLevel);
                map.animateCamera(location);
            }

            for (int i = 0; i < placeList xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed> types = place.types;
                String type = null;
                if (types != null) {
                    for (int j = 0; j < types type = "restaurant" type = "cafe" type = "bar" type = "delivery" xss=removed xss=removed>(context, map);
            map.setOnInfoWindowClickListener(mClusterManager);
            map.setInfoWindowAdapter(mClusterManager.getMarkerManager());
            mClusterManager.getMarkerCollection().setOnInfoWindowAdapter(
                    new MyCustomAdapterForItems());
            map.setOnMarkerClickListener(mClusterManager);

            mClusterManager
                    .setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MarkerObject>() {
                        @Override
                        public boolean onClusterItemClick(MarkerObject item) {
                            clickedClusterItem = item;
                            if (bottomSheetPeekHeight == initialPeekHeight) {
                                collapseBottomSheet();
                            }
                            showPlaceDetail(item);
                            return false;
                        }
                    });


            map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
                @Override
                public void onCameraIdle() {
                    CameraPosition position = map.getCameraPosition();
                    if (mPreviousCameraPosition == null || mPreviousCameraPosition.zoom != position.zoom) {
                        mPreviousCameraPosition = map.getCameraPosition();
                        mClusterManager.cluster();
                    }
                }
            });

            mClusterManager.addItems(markerObjectList);

            customIconRendered = new CustomIconRendered(context, map, mClusterManager);
            mClusterManager.setRenderer(customIconRendered);
        } else {
            CommonUtil.showToast(context, context.getString(R.string.map_error));
        }

CustomView Class:
public class MyCustomAdapterForItems implements GoogleMap.InfoWindowAdapter {

        private final View myContentsView;

        MyCustomAdapterForItems() {
            myContentsView = getActivity().getLayoutInflater().inflate(
                    R.layout.map_info_layout, null);
        }

        @Override
        public View getInfoContents(Marker marker) {
            return null;
        }

        @Override
        public View getInfoWindow(final Marker marker) {

            TextView tvTitle = ((TextView) myContentsView
                    .findViewById(R.id.map_title));

            if (clickedClusterItem != null) {
                tvTitle.setText(clickedClusterItem.getTitle());
            }

            return myContentsView;
        }
    }

CustomIconRendered for getting Icon :
public class CustomIconRendered extends DefaultClusterRenderer<MarkerObject> {


    private Context context;
    public CustomIconRendered(Context context, GoogleMap map,
                              ClusterManager<MarkerObject> clusterManager) {
        super(context, map, clusterManager);
        this.context = context;
    }

    @Override
    protected void onBeforeClusterItemRendered(MarkerObject item, MarkerOptions markerOptions) {
       /* IconGenerator iconGenerator = new IconGenerator(context);
        iconGenerator.setColor(Color.CYAN);
        markerOptions.icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon(item.getTitle()))).
                position(item.getPosition()).
                anchor(iconGenerator.getAnchorU(), iconGenerator.getAnchorV());*/

        markerOptions.icon(BitmapDescriptorFactory.fromResource(getMarkerIcon(item.getType())));
        markerOptions.snippet(item.getSnippet());
        markerOptions.title(item.getTitle());
        super.onBeforeClusterItemRendered(item, markerOptions);
    }

    private int getMarkerIcon(String type) {
        int id = 0;
        if(type == null) {
            return R.drawable.ic_restaurant_map;
        }

        switch (type) {
            case "cafe" :
                id = R.drawable.ic_cafe_map;
                break;

            case "delivery" :
                id = R.drawable.ic_delivery_map;
                break;

            case "restaurant" :
                id = R.drawable.ic_restaurant_map;
                break;

            case "bar" :
                id = R.drawable.ic_bar_map;
                break;

        }
        return id;
    }
}

 

Revise this Paste

Your Name: Code Language: