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

我与影子孤独终老i 提交于 2019-11-29 10:28:22

问题


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


回答1:


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




回答2:


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




回答3:


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


来源:https://stackoverflow.com/questions/3067530/how-can-i-get-minimum-and-maximum-latitude-and-longitude-using-current-location

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