如何使一个标记出现或消失的基础上谷歌地图V2缩放级别 [英] How to make a marker appear or disappear based on zoom level on Google Maps v2
问题描述
我们都知道,有些在谷歌地图的predefined地标不会出现在一个较低的缩放级别,但在一个更高的缩放级别,它突然出现。我想知道如果我可以做一个自定义的标记没有出现在较低的缩放级别,则出现在更高的。
We all know that some of the predefined landmarks on Google Maps does not appear on a lower zoom level, but on a higher zoom level, it suddenly appears. I would like to know If I can make a customized marker not appear at lower zoom levels, then appear at higher ones.
编辑:这是我的code的片段
// 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的建议,但仍然标记在所有缩放级别出现。我很抱歉关于这个问题我还是一个Android新手。
I tried the suggestion of MaciejGórski but the marker still appears on all zoom levels. I'm sorry about the question I'm still an android newbie.
先谢谢了。
推荐答案
您可以做任何标记
你想要的:调用调用setVisible
在 OnCameraChangeListener.onCameraChange
回调与真正
或假
根据 CameraPosition.zoom
值。
You can do that for any Marker
you want: call setVisible
in OnCameraChangeListener.onCameraChange
callback with true
or false
depending on CameraPosition.zoom
value.
问题后编辑编辑:
您需要参考保持标记
而不是的MarkerOptions
:
You need to keep a reference to Marker
instead of MarkerOptions
:
// adding marker
marker = map.addMarker(markerOptions);
和调用调用setVisible
上标记
:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
marker.setVisible(cameraPosition.zoom > 7);
}
注意:调用setVisible
总是叫有,但采用了许多标记
S当这可能不是最佳
Note: setVisible
is always called there, but this might not be optimal when using many Marker
s.
这篇关于如何使一个标记出现或消失的基础上谷歌地图V2缩放级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!