Как заставить маркер появляться или исчезать в зависимости от уровня масштабирования в Google Maps v2

Все мы знаем, что некоторые из предопределенных ориентиров на Картах 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, но маркер все еще появляется на всех уровнях масштабирования. Я сожалею о вопросе, я все еще новичок Android.

Заранее спасибо.

2 ответа

Решение

Вы можете сделать это для любого 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 всегда вызывается там, но это не может быть оптимальным при использовании многих Markers.

Вы могли бы сделать это, изменив мой ответ на: Android Maps v2 - анимировать камеру, чтобы включить большинство маркеров

В противном случае использование расширений Android Maps может быть хорошим выбором. Не экспериментируйте с вашими конкретными потребностями.

Просто понял, что мог неправильно понять вопрос. Думаю, вы имели в виду свои собственные маркеры. Тем не менее взгляните на библиотеку расширений. Вполне может быть, что у них есть что-то полезное.

Другие вопросы по тегам