This worked great for me. My solution is in Swift, however Obj-C is similar.
Swift:
let mRect: MKMapRect = self.mapView.visibleMapRect let eastMapPoint = MKMapPointMake(MKMapRectGetMinX(mRect), MKMapRectGetMidY(mRect)) let westMapPoint = MKMapPointMake(MKMapRectGetMaxX(mRect), MKMapRectGetMidY(mRect)) let currentDistWideInMeters = MKMetersBetweenMapPoints(eastMapPoint, westMapPoint) let milesWide = currentDistWideInMeters / 1609.34
Obj-C (welcomes the initial contributor to the fooobar.com/questions/256521 / ... code below)
MKMapRect mRect = self.mapView.visibleMapRect; MKMapPoint eastMapPoint = MKMapPointMake(MKMapRectGetMinX(mRect), MKMapRectGetMidY(mRect)); MKMapPoint westMapPoint = MKMapPointMake(MKMapRectGetMaxX(mRect), MKMapRectGetMidY(mRect)); self.currentDistWideInMeters = MKMetersBetweenMapPoints(eastMapPoint, westMapPoint);
source share