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

ぐ巨炮叔叔 提交于 2019-11-30 07:41:12

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

Vidhi Patel

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);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!