how to make mapview zoom to 5 mile radius of current location

Aisha picture Aisha · Feb 17, 2011 · Viewed 25.6k times · Source

I know its a very common issue but I am not getting the exact answer for this thing.

How to make MKMapView defaults to a zoom of a 5 mile radius of current location.

Thanks in advance.

Answer

Anurag picture Anurag · Feb 17, 2011

Use the MKCoordinateRegionMakeWithDistance function from MapKit.

Use a conversion function to convert miles to meters since MapKit uses meters.

float MilesToMeters(float miles) {
    // 1 mile is 1609.344 meters
    // source: http://www.google.com/search?q=1+mile+in+meters
    return 1609.344f * miles;
}

Then in your code set the map region as (thanks to @DylanBettermann for pointing out that to get a radius of 5 miles, the distance needs to be doubled)

mapView.region = MKCoordinateRegionMakeWithDistance(
    centerCoordinate, 
    MilesToMeters(10.0f),
    MilesToMeters(10.0f)
);

swift 4 version :

mapView.region = MKCoordinateRegion(
            center: centerCoordinate,
            latitudinalMeters: MilesToMeters(10.0f),
            longitudinalMeters: MilesToMeters(10.0f)
)