Отключить перемещение в mapview

Можно ли отключить перемещение внутри карты google?

Ответы

Ответ 1

Я обнаружил, что setClickable (false);

Ответ 2

Несмотря на то, что есть принятый ответ, просто предоставление моего ответа, поскольку он мне не помог. mapView.setClickable(false) не работает все время, например, случаи, когда у вас есть mapView внутри scrollView. Поэтому я создал объект вида прямо над mapView того же размера.

Обработал onTouchListener для моего оверлейного представления и передал все события касания родительскому элементу mapView (ScrollView в моем случае), поэтому обходя все события касания от mapView до прокрутки.

Еще один способ добиться - сделать

mMap.getUiSettings().setAllGesturesEnabled(false);

Ответ 3

mMap.getUiSettings().setScrollGesturesEnabled(false);

это может отключить перемещение на карте

Ответ 4

Вы хотите установитьClickable (false), но вы также, вероятно, захотите установитьFocusable (false), чтобы предотвратить фокусировку MapView.

Это может быть проблемой, когда пользователь использует кнопки навигации аппаратного обеспечения, потому что если MapView имеет фокус, кнопки вверх-вниз-вправо-вправо прокручивают карту.

Ответ 5

Если вы вставляете представление карты в свое приложение, я думаю, вы можете использовать статические карты для просмотра того же.

Ответ 6

Я создал customMapView, который расширяет MapView и переопределить метод onInterceptTouchEvent.

public class customMapView extends MapView {
    public customMapView(Context context) {
        super(context);
    }

    public customMapView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
    }

    public customMapView(Context context, AttributeSet attributeSet, int i) {
        super(context, attributeSet, i);
    }

    public customMapView(Context context, GoogleMapOptions googleMapOptions) {
        super(context, googleMapOptions);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {

//      return super.onInterceptTouchEvent(ev);
        return true;
    }

}

Ответ 7

Мы можем остановить взаимодействие с пользователем MapView или SupportMapFragment, используя GoogleMapOptions

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val mapOptions = GoogleMapOptions()
        mapOptions.rotateGesturesEnabled(false)
        mapOptions.zoomGesturesEnabled(false)
        mapOptions.tiltGesturesEnabled(false)
        mapOptions.scrollGesturesEnabled(false)

        // Map View
        val mapView = MapView(context, mapOptions)
        mapView.onCreate(savedInstanceState)

        // Or
        val mapView = MapView(context
        mapView.getMapAsync { googleMap ->
           googleMap.uiSettings.setAllGesturesEnabled(false) 
        }

       // Or Map Fragment
       val mapFragment = SupportMapFragment.newInstance(mapOptions)
}

Ответ 8

Возможно, это может быть решение:

mapView.setEnabled(ложь)