0

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

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

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

提前致谢。

4

2 回答 2

3

您可以根据需要执行此操作MarkersetVisible使用或根据值调用OnCameraChangeListener.onCameraChange回调。truefalseCameraPosition.zoom

问题编辑后编辑:

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

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

并呼吁setVisiblemarker

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

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

于 2013-10-02T16:22:12.830 回答
0

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

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

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

于 2013-10-02T09:57:55.827 回答