我有一张带有很多标记(大约 1000 个)的谷歌地图(v2)。如果距离为 2 公里或更多,我需要一个条件,标记不应该是可点击的。我已经找到了距离,但默认窗口在所有标记上都打开。当距离<2 时,信息窗口是否可能打开,否则不会。
问问题
972 次
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;
}
});
于 2013-09-13T11:35:06.350 回答