şu çokgen görünümünde bir CGPoint koordine dönüştürür ve bu nokta, yolun ise (dikdörtgen-olmayan olabilir) test etmek için CGPathContainsPoint kullanır:
CLLocationCoordinate2D mapCoordinate = ...; //user location or annot coord
MKMapPoint mapPoint = MKMapPointForCoordinate(mapCoordinate);
MKPolygonView *polygonView =
(MKPolygonView *)[mapView viewForOverlay:polygonOverlay];
CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];
BOOL mapCoordinateIsInPolygon =
CGPathContainsPoint(polygonView.path, NULL, polygonViewPoint, NO);
Bu, herhangi bir kaplaması ile çalışmalıdır Bu, MKOverlayPathView'ın bir alt sınıfıdır. Örnekte MKPolygonView'ı MKOverlayPathView ile değiştirebilirsiniz.
Bu delikler (iç poligonlar) ile MKPolygons üzerinde çalışır mı? –
@Greg Combs: Çokgen (veya kaplama yolu) deliklere sahipse, sorgulanan nokta bir delikte ise, CGPathContainsPoint NO döndürür. – Anna
@AnnaKarenina - Bu harita nasıl belirlenir MKPolygon'lu bir senaryo içinCoordinateIsInPolygon değeri, ancak harita görünümü yok? (çünkü sahip olduğum tek şey koordinatlar kümesidir, fakat bir görüşe gerek yoktur) –