我想用iOS做地理包围盒的计算。它可以是无益的。
输入参数:
当前位置(例如: 41.145495,−73.994901)
半径(以米为单位):(示例: 2000)
必需的输出:
MinLong:(示例: 41.9995495)
MinLat:(示例:−74.004901)
MaxLong:(示例: 41.0005495)
MaxLat:(示例:−73.004901)
需求:无网络呼叫
有什么想法吗?Mapkit / CoreLocation似乎不提供这种类型的东西?
还有其他我可以用的地理SDK吗?
谢谢
发布于 2012-09-26 17:30:14
我认为您可以使用标准的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公里。
发布于 2013-06-20 22:55:29
我知道我参加聚会有点晚了,但是我刚刚构建了一个类GTBoundingBox,它可能(或者不可能)有帮助:
https://stackoverflow.com/questions/12465711
复制相似问题