NSLog检测更新MKPolygon中的当前位置

时间:2013-08-22 13:17:36

标签: ios objective-c mapkit cllocationmanager mkpolygon

noob在这里。我已经阅读了如何检测MKPolygon中的一个点但是我在实现它时遇到了困难 - 它可能只与代码中的部分有关,我正在检查用户位置......我不是甚至确定它是否一直在检查。无论如何,这是相关的代码:

- (void)locationManager:(CLLocationManager *)manager
  didUpdateLocations:(NSArray *)locations {
self.current = [locations lastObject];
NSLog(@"lat%f - lon%f", self.current.coordinate.latitude, self.current.coordinate.longitude);
NSLog(@"%@", self.mapCIIP); }

以后

-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay{
if([overlay isKindOfClass:[MKPolygon class]]){
    MKPolygonRenderer *view = [[MKPolygonRenderer alloc] initWithOverlay:overlay];
    view.lineWidth=1;
    view.strokeColor=[UIColor blueColor];
    view.fillColor=[[UIColor blueColor] colorWithAlphaComponent:0.5];


    return view;
    CLLocationCoordinate2D mapCoordinate = CLLocationCoordinate2DMake(self.current.coordinate.latitude, self.current.coordinate.longitude);

    MKMapPoint mapPoint = MKMapPointForCoordinate(mapCoordinate);
    if (CLLocationCoordinate2DIsValid(mapCoordinate)) {
        NSLog(@"Coordinate valid");
    } else {
        NSLog(@"Coordinate invalid");
    }

    CGPoint polygonViewPoint = [view pointForMapPoint:mapPoint];


    if ( CGPathContainsPoint(view.path, NULL, polygonViewPoint, NO) ) {
        self.mapCIIP = @"TRUE";
    }
    else {
        self.mapCIIP = @"false";
    };


}
return nil; }

我在Xcode中模拟不同的位置,并在我的iPhone上运行,而在lat / long更新时,它并没有给出我想要的多边形我想要的多边形。有一次,它显示为全部真实,但现在它在NSLog中都是(null)。谢谢!

1 个答案:

答案 0 :(得分:1)

在您的功能中,它会返回view,因此无法访问设置mapCIIP的代码。