【发布时间】:2013-01-09 10:28:38
【问题描述】:
我需要检查当前用户位置是否在特定区域内,这里我使用MKPolygonView。我在MKMapView 中添加了一条路线,我想检查用户是否在该特定路线或不是 。我尝试了以下代码,但它始终显示我在错误的路径中,即使我在那个区域。
知道我哪里出错了吗?
任何帮助将不胜感激。
谢谢。
BOOL exist = NO;
CLLocationCoordinate2D mapCoordinate = newLocation.coordinate;//user location or annot coord
MKMapPoint mapPoint = MKMapPointForCoordinate(mapCoordinate);
for(MKPolyline *routeLine in overlays)
{
NSLog(@"Overlays array count = %d",overlays.count);
MKPolygonView *polygonView =(MKPolygonView *)[mapView viewForOverlay:routeLine];
CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];
BOOL mapCoordinateIsInPolygon = CGPathContainsPoint(polygonView.path, NULL, polygonViewPoint, NO);
NSLog(@"mapcoordinate %c",mapCoordinateIsInPolygon);
if(mapCoordinateIsInPolygon)
{
exist = YES;
}
else
{
exist = NO;
}
}
【问题讨论】:
标签: iphone ios objective-c mkmapview cllocationmanager