2010-06-18 43 views

回答

6

您可以手动计算它...我不知道是否有其他方式存在 1°纬度= 69.047法定里程= 60海里 = 111.12公里

所以对于20公里它将在0.18纬度左右 经度换算与纬度除了该值乘以纬度的余弦。

要设置相同的范围在地图上显示

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; 

这将设置所显示的地图20公里的范围......

这样你就可以通过

你可以找到它找到它

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

对于经度相同但乘以余弦l atitude ...

+0

我现在的位置和半径现在我想fin d最低经纬度和 最大经纬度/长(地区)我怎么能找到这个... – 2010-06-18 06:38:13

+0

嗨Ankit, 你可以通过 找到它minLattitude = currentLattitude - (RadiusInKm/111.12); maxLattitude = currentLattitude +(RadiusInKm/111.12); 对于相等的但相同的结果乘以余弦的格...我更新了同样的答案... – 2010-06-18 07:28:38

+0

非常感谢你的回复..... – 2010-06-18 07:38:01

0
  1. 宏度转换为弧度

    定义DEGREES_TO_RADIANS(度)(度/ 180.0 * M_PI)

  2. 宏RADUIS在KM

    定义radiusInKM 5.00

  3. 设置最小和最大纬度,经度值

    CLLocation *位置; //您的当前位置

    1°纬度= 69.047法定英里= 60海里=111.12公里

    双minL​​at = 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

不知道这与已接受的答案有什么本质区别,但至少删除了一个答案 – Foon 2015-07-31 12:31:44

0

1)宏为度转换为弧度:

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

2)宏到RADUIS在KM:

#define radiusInKM 5.00 

3)设置在最小和最大经纬度值

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); 
相关问题