12

MKMapView と CLLocationCoordinate2D がある場合、マップの可視領域に座標が含まれているかどうかをどのようにテストしますか?

4

3 に答える 3

33

最速の方法は、組み込みの Apple 関数を使用することです。

if(MKMapRectContainsPoint(mapView.visibleMapRect, MKMapPointForCoordinate(coordinate)))
{
    //Do stuff
}

座標はCLLocation2Dです。

これは、大量の if ステートメントを使用して座標を計算するよりもはるかに高速です。その理由は、Apple が Quadtree を使用しており、高速なルックアップを実行できるからです。

于 2013-04-26T15:26:22.987 に答える