【问题标题】:How to make a marker appear or disappear based on zoom level on Google Maps v2如何根据 Google Maps v2 上的缩放级别使标记出现或消失
【发布时间】:2013-10-08 16:15:15
【问题描述】:

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

编辑:这是我的代码的 sn-p。

 // 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 新手。

提前致谢。

【问题讨论】:

  • 我刚刚添加了我的代码的 sn-p。

标签: android google-maps zooming google-maps-markers android-maps-v2


【解决方案1】:

您可以对任何您想要的Marker 执行此操作:使用truefalseOnCameraChangeListener.onCameraChange 回调中调用setVisible,具体取决于CameraPosition.zoom 值。

问题编辑后编辑:

您需要保留对Marker 的引用而不是MarkerOptions

// adding marker
marker = map.addMarker(markerOptions);

然后在那个marker上打电话给setVisible

    @Override
    public void onCameraChange(CameraPosition cameraPosition) {
        marker.setVisible(cameraPosition.zoom > 7);
    }

注意:setVisible 总是在那里被调用,但是当使用许多 Markers 时这可能不是最佳的。

【讨论】:

  • 为什么“markerOptions”是marker的参数?我认为 markerOptions 是一个变量类型。
  • @MiguelRivera MarkerOptions 是一个类型,markerOptions 可能是一个变量名。
  • 哦,好吧。对不起,先生。
  • logcat 说我在这一行有一个空指针异常 "marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig));"我有一张名为 gasbig 的图片
【解决方案2】:

你可以通过修改我的回答来做到这一点:Android Maps v2 - animate camera to include most markers

否则使用Android Maps Extensions 可能是一个不错的选择。虽然没有经验满足您的特定需求。

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

【讨论】:

  • Extensions lib (目前)还不能做到这一点,但当您希望将它们分组并在任何缩放级别上轻松访问时,而不是将标记隐藏在较低的缩放级别上,这可能是一个不错的选择。
  • 据我了解,Miguel 想要MarkerManager in the javascript API 之类的东西。
  • 嗨@MaciejGórski你有一些教程或涉及Android MarkerManager的代码吗?我找不到。
  • @MiguelRivera 我不知道这样的教程是否存在。
猜你喜欢
  • 1970-01-01
  • 2014-01-15
  • 2013-06-04
  • 2013-12-01
  • 1970-01-01
  • 2014-09-10
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多