Mapbox не рисовал слой при перемещении пользователя - PullRequest
0 голосов
/ 08 апреля 2020

Я создаю работающее приложение и использую Sdk mapbox. Требование заключается в том, что когда пользователь перемещается, мне нужно нарисовать слой от начального местоположения до самого последнего,

Я пробовал этот способ, но он не работал

 class LocationChangeListeningActivityLocationCallback internal constructor(activity: MapBoxActivity) : LocationEngineCallback<LocationEngineResult> {

        private val activityWeakReference: WeakReference<MapBoxActivity> = WeakReference(activity)
        override fun onSuccess(result: LocationEngineResult) {
            val activity = activityWeakReference.get()
            if (activity != null) {
                val location = result.lastLocation ?: return
                if (result.lastLocation != null) {
                    activity.mapBoxMap.locationComponent.forceLocationUpdate(result.lastLocation)
                    activity.listPoint.add(Point.fromLngLat(location.latitude, location.longitude))
                    activity.trackingLine()
                }
            }
        }

        override fun onFailure(exception: Exception) {
            val activity = activityWeakReference.get()
            if (activity != null) {
                Toast.makeText(activity, exception.localizedMessage, Toast.LENGTH_SHORT).show();
            }
        }
    }

var listPoint: ArrayList<Point> = ArrayList()
private var geoJson: GeoJsonSource = GeoJsonSource(LINE_SOURCE_ID)

fun trackingLine() {
    mapBoxMap.getStyle {
        geoJson.setGeoJson((Feature.fromGeometry(LineString.fromLngLats(listPoint))))
        LogCat.d("Set new location in geoJSON")
    }
}

private fun initDotLinePath(loadedMapStyle: Style) {
    loadedMapStyle.addSource(geoJson)
    loadedMapStyle.addLayerBelow(LineLayer(LAYER_ID_3, LINE_SOURCE_ID).withProperties(
        PropertyFactory.lineColor(Color.parseColor("#F13C6E")),
        PropertyFactory.lineCap(Property.LINE_CAP_ROUND),
        PropertyFactory.lineJoin(Property.LINE_JOIN_ROUND),
        PropertyFactory.lineWidth(4f)), "road-label")
}

Пожалуйста, покажите мне мои ошибки. Большое спасибо

1 Ответ

0 голосов
/ 08 апреля 2020

activity.listPoint.add(Point.fromLngLat(location.latitude, location.longitude))

Ваши координаты в неправильном порядке.

...