AnMKMapRect使用与不同的MKMapPoint单位。CLLocationDegrees
该MKMapRectMake函数需要左上角MKMapPoint,然后是宽度和高度(再次以单位为MKMapPoint单位)。
基本上,您需要使用该MKMapPointForCoordinate函数来帮助您完成从度到MKMapPoint单位的转换。
首先,您可以构造 anMKCoordinateRegion然后将其转换为MKMapRect.
例如:
//create a region 10km around the annotation...
MKCoordinateRegion mapRegion = MKCoordinateRegionMakeWithDistance
(annotation.coordinate, 10000, 10000);
//convert the MKCoordinateRegion to an MKMapRect...
MKMapRect mapRect = [self mapRectForCoordinateRegion:mapRegion];
mapRectForCoordinateRegion方法是你必须写的东西 。
有关一种编写方式的示例,请参阅此答案:
如何在两个 MKCoordinateRegion 之间建立联合
顺便说一句,请注意,在您的情况下,annotationsInMapRect将包括您正在搜索的注释(因为您使用它作为中心)。