2012-09-17 88 views
5

我想在iOS中進行地理邊界框計算。 它可以是aprox。如何計算iOS中的地理邊界框?

輸入參數:

當前位置(例如:41.145495,-73.994901)

半徑(米):(實施例:2000)

所需的輸出:

閩龍:(例如:41.9995495)

MinLat:(實施例:-74.004901)

MAXLONG:(實施例:41.0005495)

MaxLat:(實施例:-73.004901)

要求: 否網絡呼叫

任何想法? Mapkit/CoreLocation似乎不提供這種類型的東西?

我可以使用的任何其他地理SDK?

感謝

回答

4

我想你可以使用標準的MapKit功能:MKCoordinateRegionMakeWithDistance,這將返回一個MKCoordinateRegion,這僅僅是一箇中心點(緯度,經度),並在度latitudal和longitudal方向的跨度。分別從經度和緯度增加/減去跨度的一半,你有你正在尋找的值。

CLLocationCoordinate2D centerCoord = CLLocationCoordinate2DMake(41.145495, −73.994901); 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(centerCoord, 2000, 2000); 

double latMin = region.center.latitude - .5 * startRegion.span.latitudeDelta; 
double latMax = region.center.latitude + .5 * startRegion.span.latitudeDelta; 
double lonMin = region.center.longitude - .5 * startRegion.span.longitudeDelta; 
double lonMax = region.center.longitude + .5 * startRegion.span.longitudeDelta; 

順便說一下:這只是代表小跨度的經度,大約爲幾公里。到quote Apple

latitudeDelta
北到南距離的量(以度爲單位),以使用的跨度。與縱向距離不同,緯度因緯度而異,一度緯度約爲111公里(69英里)。

longitudeDelta
東到西距離的量(以度爲單位),以使用的跨度。經度範圍跨越的公里數根據當前的緯度而變化。例如,一度的經度橫跨赤道約111公里(69英里)的距離,但在兩極縮小到0公里。

+0

這是有點問題,當你視重疊0經度標記 –

+1

上述計算中startRegion的值是多少 –

+0

@JamesBillingham或±180經度±90緯度標記 – wyu