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

时间:2012-09-17 19:15:15

标签: ios geolocation bounding-box

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

输入参数:

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

半径米:(例如:2000)

必填项:

MinLong :(例如:41.9995495)

MinLat :(例如:-74.004901)

MaxLong :(例如:41.0005495)

MaxLat :(例如:-73.004901)

要求: 没有网络电话

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

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

由于

2 个答案:

答案 0 :(得分:4)

我认为你可以使用标准的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;

顺便说一句:这只是小跨度的经度的代表,大约几公里。致quote Apple

  

latitudeDelta
  用于跨度的北 - 南距离(以度为单位)的量。与纵向距离不同,纵向距离根据纬度而变化,一个纬度在任何时候都大约为111公里(69英里)。

     

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

答案 1 :(得分:0)

我知道我参加派对有点晚了,但我刚建了一个可能(或可能没有)帮助的课程GTBoundingBox

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