如何计算iOS中的地理边界框?

我想在iOS中进行地理边界框计算。 它可以是aprox。

input参数:

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

半径(以米为单位):(例如:2000)

所需输出:

民隆:(例如:41.9995495)

MinLat:(例如:-74.004901)

MaxLong:(例如:41.0005495)

MaxLat:(例如:-73.004901)

要求:没有networking电话

有任何想法吗? Mapkit / CoreLocation似乎没有提供这种types的东西?

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

谢谢

我认为你可以使用标准的MapKit函数: MKCoordinateRegionMakeWithDistance ,这将返回一个MKCoordinateRegion ,它实际上只是一个中心点(lat,lon),以及纬度和纵向方向的跨度(度)。 分别从纬度和经度加/减一半的跨度,你有你正在寻找的值。

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; 

顺便说一句:这只是代表小跨度的经度,长达几公里。 引用苹果 :

latitudeDelta
用于跨度的北 – 南距离(以度数衡量)。 不同于纵向距离,纬度因纬度而异,一度纬度约为111公里(69英里)。

longitudeDelta
用于跨度的东西距离(以度为单位)。 经度范围跨越的公里数根据当前的纬度而变化。 例如,一度的经度跨越赤道约111公里(69英里)的距离,但在两极缩小到0公里。

我知道我晚了一点,但我刚刚build立了一个类GTBoundingBox ,可能(或不可能)帮助:

https://github.com/wpearse/ios-geotools