LatLngBounds API 
Here you can see how the feature collection is loaded and how MapMetricsMap.getCameraForLatLngBounds is used to set the bounds during map initialization:
kotlin
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:
kotlin
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()
}