我在SQLite数据库中有一个表,其中包含4,000个位置,包括纬度和经度。根据 MKCoordinateRegion 类提供的区域信息,如何从地图上获得该区域的位置?可能吗?

首先,我尝试使用Haversine公式,但是我所做的只是对最靠近地图中心的地方进行了排序。但是我想要的地方位于地图的某个区域。还是我错了?

提前致谢。

最佳答案

您可以通过访问region属性从MKMapView获取纬度和经度的最大值/最小值:

MKCoordinateRegion *mapRegion = myMap.region;

然后,您可以按以下方式访问最大值和最小值:
maxLatitude = mapRegion.center.latitude + mapRegion.span.latitudeDelta/2;
minLatitude = mapRegion.center.latitude - mapRegion.span.latitudeDelta/2;

maxLongitude = mapRegion.center.longitude+ mapRegion.span.longitudeDelta/2;
minLongitude = mapRegion.center.longitude- mapRegion.span.longitudeDelta/2;

希望这可以帮助!如果将数据存储在Core Data,NSSetNSArray中,则可以使用NSPredicate筛选出符合上述条件的结果。

这是 MKMapView MKCoordinateRegion 的文档。

10-08 03:24