2012-07-30 87 views
1

我試圖在指定區域的另一個註解附近獲得所有註釋,但我無法確定如何去做。現在我試着用:獲得圍繞另一個註釋的所有註釋

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

但是附近的註釋是空的。我試圖通過交換經緯度和第三和第四參數的更大數字,但仍然沒有結果。我應該怎麼做?

回答

1

MKMapRect使用MKMapPoint單元組成一回事CLLocationDegrees

MKMapRectMake function需要左上角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方法是你寫的東西。

對於一種方式的例子來寫,看到這樣的回答:
How to make the union between two MKCoordinateRegion


順便說一句,請注意你的情況,annotationsInMapRect將包括您正在搜索周圍的註釋(因爲你正在使用它作爲中心)。

+0

如果它包含當前註釋,我就知道如何處理它。萬分感謝 – ov1d1u 2012-07-30 14:39:28