Search code examples
iosios5mkmapviewmapkit

How to know whether MKMapView visibleMapRect contains a Coordinate?


If I have a MKMapView and a CLLocationCoordinate2D how do you test whether the map's visible area contains the coordinate?


Solution

  • The fastest way is to use the inbuilt Apple functions which will make this sort of thing super quick!

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

    Where coordinate is your CLLocation2D.

    This will be much faster than working out coordinates with a bulk if statement. Reason is that Apple use a Quadtree and can do fast lookups for you.