2

그래서 이미지도가 설정되어 있고 아이콘과 제목이있는 모든 마커를 추가했습니다. addMarkersToMap() 기능을 사용했지만 제목이 너무 희박하여 클러스터링을 생각하고있었습니다. 이미지도에 설정 한 마커를 클러스터링 할 수있는 방법이 있습니까? .json 파일에서 클러스터링하는 데는이 코드가 좋지만 맵에 이미 마커가 설정되어 있으며 이미 아이콘과 제목을 설정 한 상태로 마커를 클러스터하는 법을 알지 못합니다.이미 설정된지도 및 마커에 마커 클러스터링을 추가 할 수 있습니까?

  protected void startDemo() { 
     map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); 

     mClusterManager = new ClusterManager<MyItem>(this,map); 

     map.setOnCameraChangeListener(mClusterManager); 
     try { 
      readItems(); 
     } catch (JSONException e) { 
      Toast.makeText(this, "Problem reading list of markers.", Toast.LENGTH_LONG).show(); 
     } 
    } 

    private void readItems() throws JSONException { 
     InputStream inputStream = getResources().openRawResource(R.raw.radar_search); 
     List<MyItem> items = new MyItemReader().read(inputStream); 
     for (int i = 0; i < 5; i++) { 
      double offset = i/60d; 
      for (MyItem item : items) { 
       LatLng position = item.getPosition(); 
       double lat = position.latitude + offset; 
       double lng = position.longitude + offset; 
       MyItem offsetItem = new MyItem(lat, lng); 
       mClusterManager.addItem(offsetItem); 
      } 
     } 

답변

0

이미 설정 한 맞춤 마커 (제목 및 스 니펫과 함께)는 물론 클러스터도 사용할 수 없습니다.

일단 클러스터 사용을 시작하면 모든 마커 추가 및 관련 작업이 clustermanager에 의해 처리됩니다.

하지만 모든 희망을 잃지 않았습니다!

POJO 변수, 해당 getter 및 setter를 클러스터 관리자 용으로 만든 MarkerItem 객체 내에 추가 할 수 있습니다.

그런 다음지도 활동 자체 내부의이 같은 클래스를 만들 수 있습니다

,

class OwnIconRendered extends DefaultClusterRenderer<MyItem> { 

     public OwnIconRendered(Context context, GoogleMap map, 
           ClusterManager<MyItem> clusterManager) { 
      super(context, map, clusterManager); 
     } 

     @Override 
     protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) { 
      //markerOptions.icon(item.getIcon()); 
      markerOptions.snippet(item.getContact()); 
      markerOptions.title(item.getName()); 
      super.onBeforeClusterItemRendered(item, markerOptions); 
     } 
} 

이 당신이 대답을 참조 할 수 있습니다 더 자세한 설명이

mClusterManager.setRenderer(new OwnIconRendered(activity.getApplicationContext(), getMap(), mClusterManager)); 

처럼 clustermanager 렌더링을 설정 나는 그것을 언급했다. http://stackoverflow.com/questions/27745299/how-to-add-title-snippet-and-icon-to-clusteritem