从 GoogleMaps 中隐藏 InfoWindow API 但保留方向图标
Hide InfoWindow from GoogleMaps API but keep the directions icon
我正在尝试在 android 上使用 GoogleMap API,但我想在用户点击掉落的图钉时隐藏信息窗口。然而,我仍然希望显示方向和 latlog 图标。
换句话说,图片应该清楚我需要什么:
我试图为我掉落的图钉添加一个监听器,但这会破坏整个信息窗口和方向图标,因此:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng location1 = new LatLng(32.75613, -117.11648);
mMap.addMarker(new MarkerOptions().position(location1).title("Hello"));
LatLng location2 = new LatLng(32.754978528015876, -117.12977170944214);
mMap.addMarker(new MarkerOptions().position(location2).title("World"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location1, 12.0f)); //zoom out
// This does not work, if I turn it to true, I loose the directions icon
// I don't want a custom info window, I just want to hide it and have the directions
// icon still showing up
if (false) {
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Log.d("zzz", "marker = " + marker.getTitle());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 14.0f)); //zoom out
return true;
}
});
}
}
是否可以在不重写方向图标的整个逻辑的情况下做到这一点?
谢谢!
试试这个
map.addMarker(new MarkerOptions().position(new LatLng(0, 0)));
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 14.0f));
return false;
}
});
更好的解决方案,只是让锚点远离屏幕。
private static final float ACHOR_WINDOWS_U = -9999;
private static final float ACHOR_WINDOWS_V = -9999;
...
Marker marker = map.addMarker(markerOptions);
marker.setInfoWindowAnchor(ACHOR_WINDOWS_U, ACHOR_WINDOWS_V);
我正在尝试在 android 上使用 GoogleMap API,但我想在用户点击掉落的图钉时隐藏信息窗口。然而,我仍然希望显示方向和 latlog 图标。
换句话说,图片应该清楚我需要什么:
我试图为我掉落的图钉添加一个监听器,但这会破坏整个信息窗口和方向图标,因此:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng location1 = new LatLng(32.75613, -117.11648);
mMap.addMarker(new MarkerOptions().position(location1).title("Hello"));
LatLng location2 = new LatLng(32.754978528015876, -117.12977170944214);
mMap.addMarker(new MarkerOptions().position(location2).title("World"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location1, 12.0f)); //zoom out
// This does not work, if I turn it to true, I loose the directions icon
// I don't want a custom info window, I just want to hide it and have the directions
// icon still showing up
if (false) {
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Log.d("zzz", "marker = " + marker.getTitle());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 14.0f)); //zoom out
return true;
}
});
}
}
是否可以在不重写方向图标的整个逻辑的情况下做到这一点?
谢谢!
试试这个
map.addMarker(new MarkerOptions().position(new LatLng(0, 0)));
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 14.0f));
return false;
}
});
更好的解决方案,只是让锚点远离屏幕。
private static final float ACHOR_WINDOWS_U = -9999;
private static final float ACHOR_WINDOWS_V = -9999;
...
Marker marker = map.addMarker(markerOptions);
marker.setInfoWindowAnchor(ACHOR_WINDOWS_U, ACHOR_WINDOWS_V);