Disable moving around in mapview

走远了吗. 提交于 2019-11-30 07:52:47

问题


Is it possible to disable moving inside the google map?


回答1:


Even though there is an accepted answer, just providing my answer as it didnt help me. mapView.setClickable(false) does not work all the time, like cases where you have a mapView inside a scrollView. So I created a view object right above the mapView of the same size.

Handled the onTouchListener for my overlay view and passed all the touch events to the parent of mapView (ScrollView in my case), hence by-passing all the touch events from mapView to scrollview.

One more way to achieve is by doing

mMap.getUiSettings().setAllGesturesEnabled(false);



回答2:


mMap.getUiSettings().setScrollGesturesEnabled(false);

this can disable moving in map




回答3:


You'll want to setClickable(false), but you'll also probably want to setFocusable(false) in order to prevent the MapView from getting focus.

That can be a problem when the user uses the hardware navigation buttons, because if the MapView has focus then the up-down-left-right buttons will scroll the map.




回答4:


If you embed the map view in your app, I think you can use static maps to view the same.




回答5:


I created customMapView that extends MapView and override the onInterceptTouchEvent method.

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;
    }

}



回答6:


We can stop user interactions with MapView or SupportMapFragment using 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)
}



回答7:


Perhaps this could be a solution:

mapView.setEnabled(false)



来源:https://stackoverflow.com/questions/5514187/disable-moving-around-in-mapview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!