我想在iOS中进行地理边界框计算。 它可以是aprox。
输入参数:
当前位置(例如:41.145495,-73.994901)
半径米:(例如:2000)
必填项:
MinLong :(例如:41.9995495)
MinLat :(例如:-74.004901)
MaxLong :(例如:41.0005495)
MaxLat :(例如:-73.004901)
要求: 没有网络电话
任何想法? Mapkit / CoreLocation似乎没有提供这种类型的东西?
我可以使用的任何其他地理SDK吗?
由于
答案 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
: