Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使整个多段线在google地图上可见_Java_Android_Kotlin_Android Maps - Fatal编程技术网

Java 如何使整个多段线在google地图上可见

Java 如何使整个多段线在google地图上可见,java,android,kotlin,android-maps,Java,Android,Kotlin,Android Maps,我有一个多段线,我从一个,我希望它显示一个谷歌地图与所有可见的点,但我不知道如何让相机显示所有的点。 我按如下方式添加多段线: fun MapFragment.addPolyline(line: String) { val decodedPath: List<LatLng> = PolyUtil.decode(line) getMap()?.addPolyline(PolylineOptions().addAll(decodedPath)) } fun MapFra

我有一个多段线,我从一个,我希望它显示一个谷歌地图与所有可见的点,但我不知道如何让相机显示所有的点。 我按如下方式添加多段线:

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

但是,这仅显示多段线的一部分。我需要更改缩放,以便贴图覆盖整个多段线。如何实现这一点?

您必须使LATLNGBOND。您可以使用此方法绘制整点的多段线

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