Ankit Vyas
Ankit Vyas

Reputation: 7501

How can i get minimum and maximum latitude and longitude using current location and radius?

I want Minimum and Maximum Latitude and Longitude Using Current Location.Suppose i have give the area of 20km so using that latitude and Longitude i want Maximum latitude and Longitude and Minimum latitude and Longitude also want all latitude and Longitude in between this so how can i get it.How can i use of radius in it.Please help me.Thanks in Advance...

Upvotes: 3

Views: 6286

Answers (3)

Vidhi Patel
Vidhi Patel

Reputation: 641

1) Macros to convert Degrees to Radians:

#define DEGREES_TO_RADIANS(degrees) (degrees / 180.0 * M_PI)

2) Macros to raduis in KM:

#define radiusInKM 5.00

3) Set the minimum and maximum Latitude, Longitude values

CLLocation *location;//your current location

1° latitude = 69.047 statute miles = 60 nautical miles = 111.12 kilometers

double minLat = location.coordinate.latitude - (radiusInKM/111.12);

double maxLat = location.coordinate.latitude + (radiusInKM/111.12);

double minLon = location.coordinate.longitude - (radiusInKM) / fabs(cos(DEGREES_TO_RADIANS(location.coordinate.longitude))*111.12);

double maxLon = location.coordinate.longitude + (radiusInKM) / fabs(cos(DEGREES_TO_RADIANS(location.coordinate.longitude))*111.12);

Upvotes: 0

Vidhi Patel
Vidhi Patel

Reputation: 641

  1. macros to convert Degrees to Radians

    define DEGREES_TO_RADIANS(degrees) (degrees / 180.0 * M_PI)

  2. macros to raduis in KM

    define radiusInKM 5.00

  3. set the minimum and maximum Latitude, Longitude values

    CLLocation *location;//your current location

    1° latitude = 69.047 statute miles = 60 nautical miles = 111.12 kilometers

    double minLat = location.coordinate.latitude - (radiusInKM/111.12);

    double maxLat = location.coordinate.latitude + (radiusInKM/111.12);

    double minLon = location.coordinate.longitude - (radiusInKM) / fabs(cos(DEGREES_TO_RADIANS(location.coordinate.longitude))*111.12);

    double maxLon = location.coordinate.longitude + (radiusInKM) / fabs(cos(DEGREES_TO_RADIANS(location.coordinate.longitude))*111.12);

Upvotes: -1

Mihir Mehta
Mihir Mehta

Reputation: 13843

you can manually calculate it... I don't know if any other way exist 1° latitude = 69.047 statute miles = 60 nautical miles = 111.12 kilometers

so for 20 kilometers it would be around 0.18 latitude For longitude the conversion is the same as latitude except the value is multiplied by the cosine of the latitude.

To set the same range on map for display

newRegion.center=newLocation.coordinate;
    //  newRegion.span.latitudeDelta = (20*2)/111.12;   // For kilometers

    newRegion.span.latitudeDelta = (20*2)/60.0; // For Miles
    newRegion.span.longitudeDelta = ((20*2)/60.0) *(cos(newRegion.span.latitudeDelta)); // For Miles
    mapView.region = newRegion;

It will set 20 kilometer's range on map that is displayed...

so you can find it by

you can find it by

minLattitude = currentLattitude - (RadiusInKm/111.12);
maxLattitude = currentLattitude + (RadiusInKm/111.12);

For longitude same but multiply the result with cosine of latitude...

Upvotes: 6

Related Questions