多个Clustermanger和自定义信息窗口?

时间:2019-05-19 14:42:22

标签: java android google-maps

首先,对不起头的标题感到抱歉。

我的问题基本上是这样的:在我的Google Maps应用中,我有两种标记。这些具有独特的图标和信息窗口。您可以使用地图上的按钮在它们之间切换。当我为其中一个设置信息窗口时,我意识到我无法为其他集群管理器复制该窗口。

我的班级目前看起来像这样:

public class MapActivity extends FragmentActivity implements
    OnMapReadyCallback,
    ClusterManager.OnClusterItemClickListener<Shelter>

然后我用它来设置:

shelterClusterManager.getMarkerCollection().setOnInfoWindowAdapter(new GoogleMap.InfoWindowAdapter()
    {
        @Override
        public View getInfoWindow(Marker marker)
        {
            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            final View view = inflater.inflate(R.layout.custom_info_window_shelter, null);

            TextView address = view.findViewById(R.id.info_window_address);
            TextView occupants = view.findViewById(R.id.info_window_occupants);
            TextView latitude = view.findViewById(R.id.info_window_latitude);
            TextView longitude = view.findViewById(R.id.info_window_longitude);

            address.append(clickedShelter.getTitle());
            occupants.append(clickedShelter.getSnippet());
            latitude.append("" + clickedShelter.getLatitude());
            longitude.append("" + clickedShelter.getLongitude());


            return view;
        }

        @Override
        public View getInfoContents(Marker marker)
        {
            return null;
        }
    });

我也有这种方法来获取对所选对象(clusteritem)的引用:

 @Override
public boolean onClusterItemClick(Shelter shelter)
{
    clickedShelter = shelter;
    return false;
}

基本上,现在一切都满足于Shelter类。从理论上讲,我还需要为其他ClusterItem类复制所有这些内容,但这是行不通的。

我非常感谢您的帮助!如果我应该提供更多代码,请告诉我。

我要执行的操作的GIF:https://gfycat.com/glumpastgazelle

0 个答案:

没有答案