안드로이드 구글맵 클러스터링 마커 생성이 제대로 안되네요..
조회수 1499회
구글맵에 마커를 생성하고 클러스터링 작업을했습니다.
그리고 ClusterManager.setRenderer를 사용하여 클러스터 마커를 커스텀했습니다.
클러스터링 하기전에는 잘만 생성되던 마커가 클러스터링 한 후에는 바로 보여지지가 않습니다/
처음 구글맵 화면이 보여진뒤에는, 제가 만든 수십개의 마커가 아예 보여지지가 않습니다. 그러나 지도를 축소하면 그때서야 한곳으로 모아진 클러스터 마커는 생깁니다..
그리고나서 그 후에 다시 지도를 확대하면 마커가 보입니다..
왜 처음부터 마커가 보이지 않는 걸까요?
아래 코드는 clusterManager.setRenderer(new MyClusterRenderer(getActivity(), googleMap, clusterManager)); 하기위해 만든 MyClusterRenderer 함수입니다..
public class MyClusterRenderer extends DefaultClusterRenderer<MarkerItem> {
private final IconGenerator mClusterIconGenerator = new IconGenerator(getActivity().getApplicationContext());
public MyClusterRenderer(Context context, GoogleMap map, ClusterManager<MarkerItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onBeforeClusterItemRendered(MarkerItem markerItem, MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(markerItem, markerOptions);
LatLng position = new LatLng(markerItem.getLat(), markerItem.getLon());
String spotname = markerItem.getSpotname();
tv_marker.setText(spotname);
tv_marker.setBackgroundResource(R.drawable.ic_marker_phone);
tv_marker.setTextColor(Color.BLACK);
markerOptions.title(spotname);
markerOptions.position(position);
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(getActivity(), marker_root_view)));
}
@Override
protected void onClusterItemRendered(MarkerItem markerItem, Marker marker) {
super.onClusterItemRendered(markerItem, marker);
}
@Override
protected void onBeforeClusterRendered(Cluster<MarkerItem> cluster, MarkerOptions markerOptions){
final Drawable clusterIcon = getResources().getDrawable(R.drawable.icon);
clusterIcon.setColorFilter(getResources().getColor(android.R.color.holo_blue_light), PorterDuff.Mode.SRC_ATOP);
mClusterIconGenerator.setBackground(clusterIcon);
// modify padding for one or two digit numbers
if (cluster.getSize() < 10) {
mClusterIconGenerator.setContentPadding(30, 10, 0, 0);
}
else {
mClusterIconGenerator.setContentPadding(20, 10, 0, 0);
}
Bitmap icon = mClusterIconGenerator.makeIcon(String.valueOf(cluster.getSize()));
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon));
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력