iOS, How to use GMSCoordinateBounds to show all the markers of the map? iOS, How to use GMSCoordinateBounds to show all the markers of the map? ios ios

iOS, How to use GMSCoordinateBounds to show all the markers of the map?


- (void)focusMapToShowAllMarkers{    GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] init];    for (GMSMarker *marker in <An array of your markers>)        bounds = [bounds includingCoordinate:marker.position];    [<yourMap> animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds withPadding:30.0f]];}

UPDATE:

are you sure there is nothing wrong in you array of markers and the coordinates?I've tried this code and is working perfectly. I've put this on the viewDidAppear

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:[[NSDictionary alloc]initWithObjectsAndKeys:@"44.66",@"latitude",@"21.33",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.66",@"latitude",@"21.453",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.44",@"latitude",@"21.993",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.635",@"latitude",@"21.553",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.3546",@"latitude",@"21.663",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.6643",@"latitude",@"21.212",@"longitude", nil],                         [[NSDictionary alloc]initWithObjectsAndKeys:@"44.63466",@"latitude",@"21.3523",@"longitude", nil],nil];GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] init];CLLocationCoordinate2D location;for (NSDictionary *dictionary in array){    location.latitude = [dictionary[@"latitude"] floatValue];    location.longitude = [dictionary[@"longitude"] floatValue];    // Creates a marker in the center of the map.    GMSMarker *marker = [[GMSMarker alloc] init];    marker.icon = [UIImage imageNamed:(@"marker.png")];    marker.position = CLLocationCoordinate2DMake(location.latitude, location.longitude);    bounds = [bounds includingCoordinate:marker.position];    marker.title = dictionary[@"type"];    marker.map = mapView_;}[mapView_ animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds withPadding:30.0f]];

This is my result:

map with markers


Swift 3 - Xcode 8

var bounds = GMSCoordinateBounds()        for marker in yourArrayOfMarkers        {            bounds = bounds.includingCoordinate(marker.position)        }        let update = GMSCameraUpdate.fit(bounds, withPadding: 60)        mapView.animate(with: update)


Clean swift 3 version:

let bounds = markers.reduce(GMSCoordinateBounds()) {     $0.includingCoordinate($1.position) }mapView.animate(with: .fit(bounds, withPadding: 30.0))