如何根据 Google 地图 v2 上的缩放级别使标记显示或消失



我们都知道,谷歌地图上的一些预定义地标不会出现在较低的缩放级别,而是在较高的缩放级别上突然出现。我想知道我是否可以使自定义标记不出现在较低的缩放级别,然后出现在较高的缩放级别。

编辑:这是我的代码片段。

 // 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值,使用 truefalse 在回调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 地图扩展可能是一个不错的选择。不过,没有经验满足您的特定需求。

刚刚意识到我可能误解了这个问题。以为你的意思是你自己的标记。不过,请查看扩展库。很可能他们有一些有用的东西。

最新更新