我在用着Google 地图 Android API 实用程序库 http://googlemaps.github.io/android-maps-utils/为了以集群的方式显示地图中的多个标记。
我已按照说明进行操作,并查看了库中的示例,但我不知道如何显示InfoWindow
单击标记时。
I guess getMap().setOnMarkerClickListener(mClusterManager);
是管理的人onClick
事件,如果注释掉,我可以使用覆盖它getMap().setInfoWindowAdapter(new InfoWindowAdapter() {));
但我无法访问我的自定义标记对象。
尽管如此,如果我使用getMap().setOnMarkerClickListener(mClusterManager);
,我找不到一种方法来显示InfoWindow
单击标记时。
有人知道如何实现这一目标吗?
预先非常感谢!
您需要延长DefaultClusterRenderer
类并覆盖onBeforeClusterItemRendered
,将标题附加到作为参数传递的 MarkerOptions 对象。
之后,您可以将您的实现传递给ClusterManager
.
Example:
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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)