Как сделать так, чтобы на карте Google была видна вся ломаная линия - PullRequest
0 голосов
/ 28 мая 2020

У меня есть ломаная линия, полученная из запроса направления , и я хочу, чтобы отображалась карта Google со всеми видимыми точками, но я не знаю, как заставить камеру отображать все точки. Я добавляю полилинию следующим образом:

fun MapFragment.addPolyline(line: String) {
    val decodedPath: List<LatLng> = PolyUtil.decode(line)
    getMap()?.addPolyline(PolylineOptions().addAll(decodedPath))
}

Затем я центрирую камеру по одной из точек, например:

fun MapFragment.setCamera(latLng: LatLng) {
    getMap()?.moveCamera(
        CameraUpdateFactory.newLatLngZoom(
            latLng, 20f
        )
    )
}

Однако это показывает только часть полилинии. Мне нужно изменить масштаб, чтобы карта покрывала всю полилинию. Как мне этого добиться?

1 Ответ

1 голос
/ 29 мая 2020

Вы должны сделать привязку к широте. Вы можете использовать этот метод для рисования ломаной линии целых точек.

fun drawPolyline(listlatlng: ArrayList<LatLng>) {
var latlngHistory: ArrayList<LatLng> = ArrayList()
        val bc = LatLngBounds.Builder()
        for (item in listlatlng) {
            latlngHistory.add(item)
            bc.include(item)
        }
        mMap?.clear()
        var path: Polyline = mMap!!.addPolyline(
            PolylineOptions().addAll(latlngHistory)
        )
        path.width = 10F
        path.color = Color.parseColor("#A3258F")

        if (latlngHistory != null && latlngHistory.size != 0) {
            if (latlngHistory.size < 2) {
                bc.include(latlngHistory.get(0))
                bc.include(latlngHistory.get(latlngHistory.size - 1))
            }
            //cardll is a layout refernce on which map is displaying
            val width = cardll?.width
            val height = cardll?.height
            if (width != null && height != null) {
                mMap!!.moveCamera(
                    CameraUpdateFactory.newLatLngBounds(
                        bc.build(),
                        width!!,
                        height!!,
                        60
                    )
                )
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...