我通过以下方式将默认标记添加到Google地图:
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(currentLocation.getCoordinate());
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate()));
markerOptions.snippet("Blah");
locationMarker = map.addMarker(markerOptions);
locationMarker.setDraggable(true);
如何让标记始终显示标题和片段而不触摸?我也想禁用隐藏它们。
答案 0 :(得分:89)
这很容易:
locationMarker.showInfoWindow();
答案 1 :(得分:4)
显示和隐藏标记有两种方法。布尔返回值只是防止发生默认行为(false)或允许它发生(true)。换句话说,它会通知系统您是否使用了该事件。请参阅Google API Reference。
private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (marker.isInfoWindowShown()) {
marker.hideInfoWindow();
} else {
marker.showInfoWindow();
}
return true;
}
};
mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener);
答案 2 :(得分:4)
使用showInfoWindow()
并添加标记,如下所示。
Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text"));
marker.showInfoWindow();
答案 3 :(得分:3)
只为onMarkerClickListener
返回false,如果返回true则显示infoWindow
。
点击标记时隐藏标题:
map.setOnMarkerClickListener(this);
...
@Override
public boolean onMarkerClick(Marker arg0) {
Log.i(TAG,"marker arg0 = "+arg0);
return false;
}
如果我们返回真正的标题将被显示,否则如果我们返回假标题将不会显示。
答案 4 :(得分:1)
我知道这个问题很旧,但是如果有帮助,我会在这里发布答案。
信息窗口不适用于我的情况,我希望标题仅在有空间的情况下显示,如果没有足够的空间显示,可能会隐藏起来,以免彼此重叠。
我在互联网上找不到任何解决方案,所以我袖手旁观,制作了可以解决我的问题的库,希望它也可以对其他人有所帮助:
https://github.com/androidseb/android-google-maps-floating-marker-titles
以下是其工作原理的预览:
答案 5 :(得分:1)
按住,但这是我的答案:
在文档中,有一条文字说信息窗口一次显示一次,因此没有办法做到这一点:
“信息窗口可让您在用户显示信息时 点击一个标记。 一次只显示一个信息窗口 。如果一个 用户点击标记,当前信息窗口将关闭, 将显示新的信息窗口。请注意,如果用户单击 当前正在显示信息窗口的标记,该信息窗口 关闭并重新打开。”