Skip to content

LatLngBounds API

Note

You can find the full source code of this example in LatLngBoundsActivity.kt of the MapLibreAndroidTestApp.

This example demonstrates setting the camera to some bounds defined by some features. It sets these bounds when the map is initialized and when the bottom sheet is opened or closed.

Here you can see how the feature collection is loaded and how MapLibreMap.getCameraForLatLngBounds is used to set the bounds during map initialization:

val featureCollection: FeatureCollection =
    fromJson(GeoParseUtil.loadStringFromAssets(this, "points-sf.geojson"))
bounds = createBounds(featureCollection)

map.getCameraForLatLngBounds(bounds, createPadding(peekHeight))?.let {
    map.cameraPosition = it
}

The createBounds function uses the LatLngBounds API to include all points within the bounds:

private fun createBounds(featureCollection: FeatureCollection): LatLngBounds {
    val boundsBuilder = LatLngBounds.Builder()
    featureCollection.features()?.let {
        for (feature in it) {
            val point = feature.geometry() as Point
            boundsBuilder.include(LatLng(point.latitude(), point.longitude()))
        }
    }
    return boundsBuilder.build()
}