を情報ウィンドウ表示したいマーカーである、そのクラスタリングを使用しているとき、私はマーカーをマッピングするための参照を取得するために何をしたか:あなたはそれClusterManager
を作成
.setRenderer()
メソッドを呼び出しておらず、独自のClusterRenderer
実装のインスタンスを渡す場合は、常にDefaultClusterRenderer
のインスタンスを作成して使用します。 ClusterManager
に独自のキーを作成させる場合は、そのキーを明示的に追加して参照を保持することができます(ClusterManager
にはゲッターメソッドがないため、ClusterRenderer
への参照を取得できます)。
mClusterManager = new ClusterManager<ClusterItem>(getActivity(), mMap);
mRenderer = new DefaultClusterRenderer(getActivity(), mMap, mClusterManager);
mClusterManager.setRenderer(mRenderer);
mClusterManager.addItem(ClusterItem);
マーカーにアクセスする必要がある場合は、ClusterRenderer
のマーカーに関連付けられたClusterItem
を渡します。マーカーはまだ地図上にレンダリングされていない場合
Marker marker = mRenderer.getMarker(ClusterItem);
if(marker != null){
marker.showInfoWindow();
}
Marker
オブジェクトがnullになります:ClusterItem
あなたは、マーカーは、あなたが最初にクラスターにマーカーを追加するClusterManager
に渡さClusterItem
になります見つけるために使用しますマーカーオブジェクトが使用される前にマーカーオブジェクトがヌルでないことを確認してください。
あなたが特定されている場合は、.getMarker()
を呼び出し、マーカーは、あなたが正しいClusterItem
オブジェクトを見つけることができることを確認するClusterItem
インタフェースを実装するオブジェクトの使用中.equals()
方法 をオーバーライドし、まだnullであるとき、マーカーがマップ上に配置されてきましたレンダラーによって保持されます。
ClusterRendererによってマップに追加されたマーカーへの参照を取得する方法を尋ねていますか? (つまり、クラスタを拡大した後に追加されたマーカーへの参照を取得しますか?) –
はい、私が参照を取得したら、インフォーワードウィンドウを呼び出すことができます。私は読んでいて検索していますが、その方法を見つけることはできません。 – robertDraven
'mClusterManager.getMarkerCollection()。getMarkers()'を使うことができますが、あなたが探しているMarker参照を取得するには、リストを調べる必要があります。 –