Is there a way to determine a zoom level so that all of my markers can fit in the zoom level? i am using mapbox 0.4.0
I think the answer is similar to this, but I can't find the android version
[https://www.mapbox.com/mapbox.js/example/v1.0.0/markers-only-at-zoom-level/]
With the latest SDK version the existing answer does not work anymore. Instead, use this:
LatLngBounds latLngBounds = new LatLngBounds.Builder()
  .include(new LatLng(<marker 1 latlng position>)) 
  .include(new LatLng(<marker 2 latlng position>)) 
  .build();
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 50));
Thanks to the friendly Mapbox support for providing this answer :)
okay I've figure it out. I need to create a bounding box containing all the markers
final BoundingBox zoomLevel = findZoomLevel(hotelLocation,poiLocations);
mv.zoomToBoundingBox(zoomLevel,true,true);
.....
private BoundingBox findZoomLevel(LatLng hotelLocation, LatLng[] poiLocations) {
        double bottomPadding = 0.002;
        double topPadding = 0.005; 
        BoundingBox box = new BoundingBox(findTopMost(hotelLocation,poiLocations).getLatitude() + topPadding,
                findRightMost(hotelLocation,poiLocations).getLongitude(),
                findBottomMost(hotelLocation,poiLocations).getLatitude() - bottomPadding,
                findLeftMost(hotelLocation,poiLocations).getLongitude());
        return box;
}
Update
LatLngBounds latLngBounds = new LatLngBounds.Builder()
  .include(new LatLng(lat1,lng1)) 
  .include(new LatLng(lat2,lng2)) 
  .build();
mapboxMap.moveCamera(
CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, 
                                    int paddingLeft, 
                                    int paddingTop, 
                                    int paddingRight, 
                                    int paddingBottom));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With