0

我有一张带有很多标记(大约 1000 个)的谷歌地图(v2)。如果距离为 2 公里或更多,我需要一个条件,标记不应该是可点击的。我已经找到了距离,但默认窗口在所有标记上都打开。当距离<2 时,信息窗口是否可能打开,否则不会。

4

3 回答 3

1

试试这个方法

googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {

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

        @Override
        public View getInfoWindow(Marker marker) {
            View view = null;
            if (distance<2) {
                view = LayoutInflater.from(ChatMapActivity.this).inflate(R.layout.map_window, null);
            }
            return view;
        }
    });
于 2013-09-13T10:43:07.770 回答
1

如果距离大于 2,则不返回 null,而是返回一个空视图。

View emptyView = new View(getActivity());

googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {

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

    @Override
    public View getInfoWindow(Marker marker) {
        if (distance < 2)
            return LayoutInflater.from(getActivity()).inflate(R.layout.your_layout, null);
        else return emptyView;
    }
});
于 2013-09-13T11:25:38.900 回答
1

您应该在地图上设置 OnMarkerClickListener,执行以下操作:

    map.setOnMarkerClickListener(new OnMarkerClickListener() {

        @Override
        public boolean onMarkerClick(Marker arg0) {
            double distance = 0.0; // getDistance
            // return true if you handled the click, false for default action (show window)
            return distance > 2.0;
        }
    });

参考: http: //developer.android.com/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html#onMarkerClick(com.google.android.gms.maps.model.Marker)

于 2013-09-13T11:35:06.350 回答