Как заставить маркер появляться или исчезать в зависимости от уровня масштабирования в 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
всегда вызывается там, но это не может быть оптимальным при использовании многих Marker
s.
Вы могли бы сделать это, изменив мой ответ на: Android Maps v2 - анимировать камеру, чтобы включить большинство маркеров
В противном случае использование расширений Android Maps может быть хорошим выбором. Не экспериментируйте с вашими конкретными потребностями.
Просто понял, что мог неправильно понять вопрос. Думаю, вы имели в виду свои собственные маркеры. Тем не менее взгляните на библиотеку расширений. Вполне может быть, что у них есть что-то полезное.