我们都知道Google地图上的某些预定义地标不会出现在较低的缩放级别,但是在较高的缩放级别上会突然出现。我想知道如果我可以制作一个自定义标记不会出现在较低的缩放级别,然后出现在较高的缩放级别。
编辑:这是我的代码片段。
// 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的建议,但标记仍然出现在所有缩放级别上。我很抱歉这个问题我还是个新手。
提前致谢。
答案 0 :(得分:3)
您可以为所需的任何Marker
执行此操作:使用setVisible
或OnCameraChangeListener.onCameraChange
在true
回调中呼叫false
,具体取决于CameraPosition.zoom
值
编辑问题后修改:
您需要保留对Marker
的引用,而不是MarkerOptions
:
// adding marker
marker = map.addMarker(markerOptions);
并在setVisible
上致电marker
:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
marker.setVisible(cameraPosition.zoom > 7);
}
注意:setVisible
总是在那里调用,但在使用许多Marker
时这可能不是最佳的。
答案 1 :(得分:0)
您可以通过修改我的答案来完成:Android Maps v2 - animate camera to include most markers
否则使用Android Maps Extensions可能是个不错的选择。但是没有经验满足您的特定需求。
刚才意识到我可能误解了这个问题。以为你的意思是自己的标记。不过看看扩展库。很可能他们有一些有用的东西。