您需要擴展DefaultClusterRenderer
類並覆蓋onBeforeClusterItemRendered
,將標題附加到作爲參數傳遞的MarkerOptions對象。
之後,您可以將您的實施傳遞給ClusterManager
。
例子:
class MyItem implements ClusterItem {
private LatLng mPosition;
private String mTitle;
public MyItem(LatLng position){
mPosition = position;
}
@Override
public LatLng getPosition() {
return mPosition;
}
public String getTitle() {
return mTitle;
}
public void setTitle(String title) {
mTitle = title;
}
}
class MyClusterRenderer extends DefaultClusterRenderer<MyItem> {
public MyClusterRenderer(Context context, GoogleMap map,
ClusterManager<MyItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(item, markerOptions);
markerOptions.title(item.getTitle());
}
@Override
protected void onClusterItemRendered(MyItem clusterItem, Marker marker) {
super.onClusterItemRendered(clusterItem, marker);
//here you have access to the marker itself
}
}
然後你就可以以這種方式使用它:
ClusterManager<MyItem> clusterManager = new ClusterManager<MyItem>(this, getMap());
clusterManager.setRenderer(new MyClusterRenderer(this, getMap() ,clusterManager));
你的意思是這樣的氣球? http://stackoverflow.com/questions/3880623/how-to-show-a-balloon-above-a-marker-in-a-mapactivity-isnt-there-a-widget – Tristan
http://stackoverflow.com/questions/15899619/opening-infowindow -auto-when-adding-marker-google-maps-v2-android 想想這會對你有所幫助。 – Tristan
@Tristan第一個鏈接已棄用。第二個不起作用,因爲這裏的方法是'onClusterClick(集羣集羣)',當你看到MarkerItem是我的自定義對象並且沒有'showInfoWindow()'方法 –
noloman