wykryć, czy punkt znajduje się w nakładce MKPolygon

Chcę być w stanie stwierdzić, czy stuknięcie jest wewnątrz MKPolygon.

Mam MKPolygon:

<code>CLLocationCoordinate2D  points[4];

points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);

MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];

[self.mapView addOverlay:poly];  

//create UIGestureRecognizer to detect a tap
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(foundTap:)];
tapRecognizer.numberOfTapsRequired = 1;
tapRecognizer.numberOfTouchesRequired = 1;
[self.mapView addGestureRecognizer:tapRecognizer];
</code>

to tylko podstawowy zarys stanu Kolorado.

Ustawiłem konwersję na lat / long:

<code>-(IBAction)foundTap:(UITapGestureRecognizer *)recognizer
{
    CGPoint point = [recognizer locationInView:self.mapView];

    CLLocationCoordinate2D tapPoint = [self.mapView convertPoint:point toCoordinateFromView:self.view];
}
</code>

ale nie jestem pewien, jak to zrobić, jeśli mój punkt zaczepienia znajduje się w MKPolygon. nie wydaje się, aby istniała metoda wykonania tego sprawdzenia, więc zgaduję, że muszę przekonwertować MKPolygon na CGRect i użyć CGRectContainsPoint.

MKPolygon ma właściwość .points, ale wydaje mi się, że nie mogę ich odzyskać.

jakieś sugestie?

EDYTOWAĆ:

Oba poniższe rozwiązania działają w systemie iOS 6 lub niższym, ale psują się w systemie iOS 7. W systemie iOS 7polygon.path zawsze powraca właściwośćNULL. Pani Anna była na tyle uprzejma, by zapewnićrozwiązanie w innym pytaniu SO tutaj. Polega na stworzeniu własnej ścieżki z punktów wielokąta do przejściaCGPathContainsPoint().

obraz mojego wielokąta:

questionAnswers(6)

yourAnswerToTheQuestion