我在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,
NSSet
或NSArray
中,则可以使用NSPredicate
筛选出符合上述条件的结果。这是
MKMapView
和 MKCoordinateRegion
的文档。