在我的iOS应用程序中,我有一个提供我的位置的纬度和经度。我想要计算满足距离d的边界框从我的位置开始。如何做到这一点?
第一个尝试: 我尝试使用@Neeku提供的解决方案。我可以看出它应该返回正确的信息,但不幸的是它有误差。所以我认为我不能使用它。
代码如下,我传入了1000米:
那么,结果如下: CENTER <38.0826682,46.3028721> NW <38.08717278501047,46.29717303828632>, SE <38.07816361498953,46.29717303828632>
第一个尝试: 我尝试使用@Neeku提供的解决方案。我可以看出它应该返回正确的信息,但不幸的是它有误差。所以我认为我不能使用它。
代码如下,我传入了1000米:
MKCoordinateRegion startRegion = MKCoordinateRegionMakeWithDistance(center, meters, meters);
CLLocationCoordinate2D northWestCorner, southEastCorner;
northWestCorner.latitude = startRegion.center.latitude + .5 * startRegion.span.latitudeDelta;
northWestCorner.longitude = startRegion.center.longitude - .5 * startRegion.span.longitudeDelta;
southEastCorner.latitude = startRegion.center.latitude - .5 * startRegion.span.latitudeDelta;
southEastCorner.longitude = startRegion.center.longitude - .5 * startRegion.span.longitudeDelta;
NSLog(@"CENTER <%@,%@>", @(center.latitude),@(center.longitude));
NSLog(@"NW <%@,%@>, SE <%@,%@>",@(northWestCorner.latitude),@(northWestCorner.longitude),@(southEastCorner.latitude),@(southEastCorner.longitude));
那么,结果如下: CENTER <38.0826682,46.3028721> NW <38.08717278501047,46.29717303828632>, SE <38.07816361498953,46.29717303828632>
我将其放在谷歌地图上,得到了这个结果:(见截图)
据我理解,1000米应该是从中心到盒子的边缘。而地图测量的是角落,应该是超过了1000米,但实际上只有800多米。这就是我要解决的问题。
我之前尝试过这种方法,但距离根本不准确。所以,这个解决方案对我来说没有用。如果您有更多建议或想指出这里做错了什么,请告诉我。
谢谢。