【发布时间】:2013-09-18 00:28:54
【问题描述】:
我有一个带有这么多标记(大约 1000 个)的谷歌地图(v2)。如果距离为 2 公里或更多,我需要一个条件标记不应该点击。我已经找到了距离,但默认窗口在所有标记上都打开。当距离
【问题讨论】:
标签: android google-maps google-maps-markers infowindow android-maps-v2
我有一个带有这么多标记(大约 1000 个)的谷歌地图(v2)。如果距离为 2 公里或更多,我需要一个条件标记不应该点击。我已经找到了距离,但默认窗口在所有标记上都打开。当距离
【问题讨论】:
标签: android google-maps google-maps-markers infowindow android-maps-v2
试试这个方法
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;
}
});
【讨论】:
如果距离大于 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;
}
});
【讨论】:
您应该在地图上设置一个 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;
}
});
【讨论】: