Skip to content

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