Возникла проблема с переводом на сопрограммы - PullRequest
0 голосов
/ 05 октября 2019

Возникла проблема с сопрограммами.

По какой-то причине моя PolyLine не отображается на карте. Хотя, как и планировалось, они должны были появиться. В чем может быть проблема?

Возможно, я просто не правильно написал, но я все еще начинающий и не понимаю, что должно быть. Прошу вашей помощи

private fun GetDirectionn(url: String, index: Int){
        lifecycleScope.launch(Dispatchers.Main) {
            //polylineFinal[index] = withContext(Dispatchers.IO) {
                try {
                    this@MainActivity.runOnUiThread {
                        openBottomSheetFinal()
                    }
                    val client = OkHttpClient()
                    val request = Request.Builder().url(url).build()
                    val response = client.newCall(request).execute()
                    val data = response.body()!!.string()
                    Log.d("GoogleMap", " data : $data")
                    val result = ArrayList<List<LatLng>>()
                    try {
                        val respObj = Gson().fromJson(data, GoogleMapDTO::class.java)

                        val path = ArrayList<LatLng>()

                        for (i in 0 until respObj.routes[0].legs[0].steps.size) {
                            path.addAll(decodePolyline(respObj.routes[0].legs[0].steps[i].polyline.points))
                        }
                        result.add(path)
                    } catch (e: Exception) {
                        e.printStackTrace()
                    }
                    try {
                        val lineOption = PolylineOptions()

                        for (i in result.indices) {
                            lineOption.addAll(result[i])
                            lineOption.width(10f)
                            lineOption.color(colorArray[index])
                            lineOption.geodesic(true)
                        }

                        this@MainActivity.runOnUiThread {

                            if (polylineFinal[index] != null) {
                                polylineFinal[index]!!.remove()
                                polylineFinal[index] = null
                            }

                            polylineFinal[index] = map.addPolyline(lineOption)

                            polylineFinal[index]!!.startCap = CustomCap(
                                bitmapDescriptorFromVector(
                                    applicationContext,
                                    R.drawable.icon_round_black
                                )
                            )
                            polylineFinal[index]!!.endCap = CustomCap(
                                bitmapDescriptorFromVector(
                                    applicationContext,
                                    R.drawable.icon_round_black
                                )
                            )
                        }
                        //polylineFinal[index]

                    } catch (e: Exception) {
                        //null
                    }
                } catch (e: Exception) {
                    //null
                }
            //} as Polyline
        }
    }
...