查找某个点是否在给定多边形内?

时间:2013-07-30 12:42:43

标签: iphone ios objective-c map polygon

我已下载this代码。我想检查用户当前位置是否属于任何区域。为此,我调用了以下方法,但它总是返回FALSE。以下是我的代码:

-(void)checkPoint
{
    CLLocationCoordinate2D mapCoordinate ;
    mapCoordinate.longitude=34.54664654;
    mapCoordinate.latitude=-117.05646;

    NSMutableArray *overlays = (NSMutableArray *)[HHLViewController usStatesAndTerritoryOverlays];

    MKMapPoint mapPoint = MKMapPointForCoordinate(mapCoordinate);
    for (int i=0; i<[overlays count]; i++)
    {

        MKOverlayView *overlayview = (MKOverlayView *)[self.stateMapView viewForOverlay:[overlays objectAtIndex:i]];


         MKPolygonView *polygonView =[[MKPolygonView alloc] initWithOverlay:overlayview.overlay];


        CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];

        BOOL mapCoordinateIsInPolygon =
        CGPathContainsPoint(polygonView.path, NULL, polygonViewPoint, NO);

        NSLog(@"polygon is inside %d",mapCoordinateIsInPolygon);
    }

}

我的问题是我希望在mapCoordinateIsInPolygon事件中始终没有值,尽管该点属于该区域。

我不想显示地图,所以欢迎任何其他选项。

0 个答案:

没有答案