开发者

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

开发者 https://www.devze.com 2023-01-03 17:53 出处:网络
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 lat

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 radi开发者_如何学Gous in it.Please help me.Thanks in Advance...


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...


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);


  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);

0

精彩评论

暂无评论...
验证码 换一张
取 消