detectar se um ponto está dentro de uma sobreposição de MKPolygon

Eu quero ser capaz de dizer se o tap está dentro de um MKPolygon.

Eu tenho um 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>

é apenas um esboço básico do estado do Colorado.

Eu tenho o toque para configuração de conversão lat / long:

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

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

mas eu não tenho certeza como técnico se o meu ponto de toque está dentro do MKPolygon. Não parece haver um método para fazer essa verificação, portanto, eu estou supondo que eu preciso converter o MKPolygon para um CGRect e usar CGRectContainsPoint.

O MKPolygon tem uma propriedade .points, mas parece que não consigo recuperá-los.

alguma sugestão?

EDITAR:

Ambas as soluções abaixo funcionam no iOS 6 ou inferior, mas quebra no iOS 7. No iOS 7, opolygon.path propriedade sempre retornaNULL. Ms Anna foi gentil o suficiente para forneceruma solução em outra pergunta SO aqui. Envolve criar seu próprio caminho a partir dos pontos de polígono para passarCGPathContainsPoint().

imagem do meu polígono:

questionAnswers(6)

yourAnswerToTheQuestion