Mapbox地图仅对平移手势有半响应

时间:2019-04-10 12:18:09

标签: android kotlin mapbox mapbox-gl mapbox-android

我已经实现了一个Mapbox MapView。它在屏幕上显示得很好,但是当我尝试平移地图时,它会按照我想要的方向在屏幕上移动几个像素,然后在我的手指仍然滑动时停止。有时会发生这种情况,有时甚至根本不响应。 当它停止时,并不表示它现在卡住了-我可以再试一次,并且它可能会再次移动,但是方式相同。 这是非常不可预测的,不一致且笨拙的。

**我必须提到,双击始终可以缩放。因此,滑动手势时坐姿不好。

我将地图托管在一个片段中,并显示在另一个片段内的框架中。它与片段管理器的两层(片段中的片段)有关吗?

这是我地图的片段xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:mapbox="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".fragments.ImageMapViewFragment"
        tools:showIn="@layout/fragment_image_expanded">


    <com.mapbox.mapboxsdk.maps.MapView
            android:id="@+id/mapView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            mapbox:mapbox_cameraZoom="11"/>



</androidx.constraintlayout.widget.ConstraintLayout>

这是我的片段:

    mapView = view.findViewById(co.getdere.R.id.mapView)



    mapView?.getMapAsync { mapboxMap ->
        mapboxMap.setStyle(Style.LIGHT) { style ->

            style.addImage(
                DERE_PIN,
                BitmapUtils.getBitmapFromDrawable(resources.getDrawable(R.drawable.pin_icon))!!,
                true
            )

            val geoJsonOptions = GeoJsonOptions().withTolerance(0.4f)
            val symbolManager = SymbolManager(mapView!!, mapboxMap, style, null, geoJsonOptions)
            symbolManager.iconAllowOverlap = true

            sharedViewModelForImage.sharedImageObject.observe(this, Observer {
                it?.let { image ->




                    val symbolOptions = SymbolOptions()
                        .withLatLng(LatLng(image.location[0], image.location[1]))
                        .withIconImage(DERE_PIN)
                        .withIconSize(1.3f)
                        .withZIndex(10)
                        .withDraggable(true)

                    symbolManager.create(symbolOptions)

                    val position = CameraPosition.Builder()
                        .target(LatLng(image.location[0], image.location[1]))
                        .zoom(10.0)
                        .build()

                    mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(position))


                }
            })


        }
    }

这些是我的依赖项(我最后一次尝试解决我的问题是添加的,但是仍然存在,该依赖项并没有真正改变任何东西)

implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.4.0-alpha.1'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v7:0.6.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-gestures:0.4.0'

1 个答案:

答案 0 :(得分:0)

我的问题是,即使我的片段在外部,它也位于滚动布局中,因此手势可能会在两个视图之间丢失