我们都知道,谷歌地图上的一些预定义地标不会出现在较低的缩放级别,而是在较高的缩放级别上突然出现。我想知道我是否可以使自定义标记不出现在较低的缩放级别,然后出现在较高的缩放级别。
编辑:这是我的代码片段。
// Changing marker icon
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig));
// adding marker
map.addMarker(marker);
//position on Center
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(14.635356, 121.03272914)).zoom(16).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
map.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition arg0) {
if(arg0.zoom > 7){
marker.visible(true);
}
}
});
我尝试了MaciejGórski的建议,但标记仍然出现在所有缩放级别上。我很抱歉这个问题,我仍然是一个机器人新手。
提前谢谢。
对任何您想要的Marker
执行此操作:根据CameraPosition.zoom
值,使用 true
或 false
在回调OnCameraChangeListener.onCameraChange
调用setVisible
。
问题编辑后编辑:
您需要保留对Marker
而不是MarkerOptions
的引用:
// adding marker
marker = map.addMarker(markerOptions);
并在该marker
上致电setVisible
:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
marker.setVisible(cameraPosition.zoom > 7);
}
注意:setVisible
总是在那里调用,但在使用许多Marker
时,这可能不是最佳的。
您可以通过修改我的答案来做到这一点: 安卓地图v2 - 动画相机以包含大多数标记
否则,使用 Android 地图扩展可能是一个不错的选择。不过,没有经验满足您的特定需求。
刚刚意识到我可能误解了这个问题。以为你的意思是你自己的标记。不过,请查看扩展库。很可能他们有一些有用的东西。