获取其他注释周围的所有注释



我正在尝试获取指定区域上另一个注释周围的所有注释,但我不知道如何做到。现在我尝试使用:

MKMapRect mapRect = MKMapRectMake(annotation.coordinate.longitude, annotation.coordinate.latitude, 10.0, 10.0);
NSSet *nearbyAnnotations = [map annotationsInMapRect:mapRect];

但nearbyAnnotations为空。我试着用经度和纬度交换,也用更大的数字交换第三和第四个参数,但仍然没有结果。我该怎么做?

MKMapRect使用的MKMapPoint单元与CLLocationDegrees不同。

MKMapRectMake函数需要左上角的MKMapPoint,然后是宽度和高度(同样以MKMapPoint为单位)。

基本上,您需要使用MKMapPointForCoordinate函数来帮助您完成从度数到MKMapPoint单位的转换。

首先,您可以构造一个MKCoordinateRegion,然后将其转换为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将包括您正在搜索的注释(因为您使用它作为中心)。

相关内容

  • 没有找到相关文章

最新更新