1

指定された領域の別の注釈の周囲にあるすべての注釈を取得しようとしていますが、その方法がわかりません。今私は試しています:

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

しかし、近くの注釈は空です。経度を緯度と交換し、3番目と4番目のパラメーターの数値を大きくしてみましたが、まだ結果はありません。どうすればいいですか?

4

1 に答える 1

1

は、と同じものではない単位をMKMapRect使用します。MKMapPointCLLocationDegrees

この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メソッドはあなたが書かなければならないものです 。

それを書く1つの方法の例については、この回答を参照してください:
2つのMKCoordinateRegion間の結合を作成する方法


ちなみに、あなたの場合、annotationsInMapRectあなたが探している注釈が含まれていることに注意してください(あなたはそれを中心として使用しているので)。

于 2012-07-30T14:17:14.557 に答える