我实现了一个选项来查找距离实际位置最近的标记。我在带有自定义信息窗口的 ClusterItem 中拥有所有标记。在没有集群的普通谷歌地图上,我可以直接使用marker.showInfoWindow();,然后会弹出信息窗口。使用聚类时似乎没有这样的方法,因为标记没有添加为正确的地图标记。
我的代码:
public class StationsFragment extends Fragment implements OnMapReadyCallback {
private static GoogleMap googleMap;
private ClusterManager<MyItem> clusterManager;
private MyItem clickedClusterItem;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.main_activity, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Utils.changeLanguage(getActivity());
final SupportMapFragment map = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
map.getMapAsync(this);
}
@Override
public void onMapReady(final GoogleMap map) {
googleMap = map;
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(0.0, 0.0), 10));
map.setMyLocationEnabled(true);
clusterManager = new ClusterManager<>(getActivity(), map);
map.setOnCameraChangeListener(clusterManager);
map.setOnMarkerClickListener(clusterManager);
map.setInfoWindowAdapter(clusterManager.getMarkerManager());
clusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() …Run Code Online (Sandbox Code Playgroud)