我已经在我正在构建的应用程序中组装了一个工具,该工具使用 android 上的 v2 版本的地图,当标记彼此非常接近时,它们将彼此重叠,这不是问题,但至少我希望发生什么用于绘制的最后一个标记出现在顶部。
有没有办法确保绘制的最后一个标记显示在其余标记的顶部,或者在显示紧密组合在一起的标记时,我是否受系统决策的支配。
现在我刚刚结束使用
marker.showInfoWindow();
它为我提供了我想要的确切行为,即保持最后绘制的标记出现在屏幕上其他标记的最顶部。
在旁注中,它确实打开了信息窗口,但如果我真的想要,我可以设置一个自定义布局,并在特定条件下为信息窗口设置为空,但根据我的需要,窗口打开实际上效果很好。
正如 James 已经写的那样,显示一个 InfoWindow 就可以了。
您可以使用自己的适配器“显示”不可见的 InfoWindow:
public class InfoWindowAdapter implements GoogleMap.InfoWindowAdapter{
private final View mWindow;
public InfoWindowAdapter(Activity activity) {
mWindow = App.activity.getLayoutInflater().inflate(R.layout.custom_info_window,
null);
}
@Override
public View getInfoContents(Marker mark) {
return null;
}
@Override
public View getInfoWindow(Marker marker) {
render(marker, mWindow);
return mWindow;
}
private void render(Marker marker, View view) {
//do nothing
}
}
将此设置为地图:
map.setInfoWindowAdapter(new InfoWindowAdapter(activity));
并显示信息窗口:
currentlySelectedMarker.setSnippet(" ");
currentlySelectedMarker.setTitle(" ");
currentlySelectedMarker.showInfoWindow();
setTitle 的调用很重要。否则 showInfoWindow() 将被忽略。