2014-09-07 3 views
1

수백 개의 마커가 포함 된 앱을 만들어서 클러스터링을 구현하기로 결정했습니다. 그러나 클러스터의 마커에 제목을 추가하는 문제에 봉착했습니다. 마커의 정보 창을 만들 때 JSON에서 항목을 나중에 가져 오려면이 데이터가 필요합니다. 그래서 내 질문에 요약하려면 어떻게 클러스터의 각 마커에 제목으로 문자열을 추가하는 것입니다.Google지도 클러스터의 마커에 제목 추가

내 현재 코드 : 도움 :

+0

안녕하세요, 귀하의 질문과 답변을 따르지만 나는 행동을 보여 주러 붙어 있습니다. 클러스터 항목을 클릭하면 개인 정보 창이 열립니다. 어떤 제안? – KasparTr

답변

3

에 대한

public class MyItem implements ClusterItem { 
    private final LatLng mPosition; 

    public MyItem(double lat, double lng) { 
     mPosition = new LatLng(lat, lng); 
    } 

    @Override 
    public LatLng getPosition() { 
     return mPosition; 
    } 
} 

for (int i = 0; i < activity.m_jArry.length(); i++) 
    { 
     JSONObject j; 
     try { 
      j = activity.m_jArry.getJSONObject(i); 
      mClusterManager.addItem(new MyItem(j.getDouble("lat"), j.getDouble("lon"))); 
      //mMap.addMarker(new MarkerOptions().title(j.getString("Unique")).snippet(i + "").position(new LatLng(j.getDouble("lat"), j.getDouble("lon")))); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

감사합니다 당신을위한 글로벌 솔루션, 제목을 추가 니펫을 그래서 당신은 당신이 원하는 것을 얻을 수있는 아이콘을하는 것을 도움이 있습니다.

당신의 ClusterItem 개체를 수정하고 추가 3 개 변수 :

public class MyItem implements ClusterItem { 

private final LatLng mPosition; 
BitmapDescriptor icon; 
String title; 
String snippet; 

public MyItem(BitmapDescriptor ic,Double lat , Double lng,String tit ,String sni) 
{ 
    mPosition = new LatLng(lat,lng); 
    icon = ic; 
    title = tit; 
    snippet = sni; 

} 

그리고 당신은 당신의 의상을 만든 후 렌더링 : 그 후

public class OwnRendring extends DefaultClusterRenderer<MyItem> { 

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


    protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) { 

     markerOptions.icon(item.getIcon()); 
     markerOptions.snippet(item.getSnippet()); 
     markerOptions.title(item.getTitle()); 
     super.onBeforeClusterItemRendered(item, markerOptions); 
    } 
} 

은 (addItems라는 전에 SetUpCluster에() 함수를이 줄을 넣어) :

mClusterManager.setRenderer(new OwnRendring(getApplicationContext(),mMap,mClusterManager)); 
+0

고맙습니다 ..! :) – Abhishek

관련 문제