NSPredicate根据MapView边界限制纬度经度范围

时间:2016-04-18 19:45:23

标签: swift core-data

所以我有一个带有MapView的应用程序,我使用CoreData加载与地图中心附近位置相关的注释。目前,我静态定义纬度/经度范围:

var fetchDataPredicates = [NSPredicate]()
fetchDataPredicates.append(NSPredicate(format: "itemLatitude BETWEEN {%f,%f} AND itemLongitude BETWEEN {%f,%f}", (latitude-0.10), (latitude+0.10), (longitude-0.10), (longitude+0.10)))

然而,这是一个非常糟糕的解决方案。如果用户在地图中缩小了很远,那么数据只会覆盖其中的一小部分。

有没有人对如何根据MapView边界动态调整纬度/经度范围有任何好的想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

可能的解决方案是向地图视图询问其region。那是MKCoordinateRegion,其中包括

  • CLLocationCoordinate2D center
  • MKCoordinateSpan span

跨度包括经度和纬度增量,看起来就像你需要的那样。