2010-06-18 59 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); 
相關問題