无法渲染多边形(无法保留指示:XX):特征 ID:X 键:XXXX



我使用了Mac OS X 10.9.3Xcode 5.1.1

在我的应用程序中,我必须使用MKMapView,一切都很好,但在iOS 6.1中,我在控制台中显示了奇怪的错误,比如

Can't render polygon (can't reserve indicies: 1482): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 570): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 30): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 390): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 330): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 18): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 30): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 18): featureID: 0 key: 0.0.1 (512)

就像这个问题。

我想知道这个错误,为什么它会在iOS 6.1中显示,以及如何解决它

我的代码是:

self.mapView = [[MKMapView alloc] init];
self.mapView.frame = CGRectMake(30, 30, 140, 105);
[self.mapView setMapType:MKMapTypeStandard];
[self.mapView setZoomEnabled:YES];
[self.mapView setScrollEnabled:YES];
[self.mapView setDelegate:self];
self.mapView.layer.borderWidth = 1;
self.mapView.layer.borderColor = [UIColor lightGrayColor].CGColor;
[self.scrollView addSubview:self.mapView];
self.pointAnnotation = [[MKPointAnnotation alloc] init];
[self setMAPAnnotationAndCallout]; /// custom method for set annotation pin and callout
-(void)setMAPAnnotationAndCallout
{
    CLLocationCoordinate2D theCoordinate ;
    theCoordinate.latitude = [[self.dicOfMAP objectForKey:@"latitude"] doubleValue];
    theCoordinate.longitude = [[self.dicOfMAP objectForKey:@"longitude"] doubleValue];
    self.pointAnnotation.coordinate = theCoordinate;
    self.pointAnnotation.title = @"Title";
    self.pointAnnotation.subtitle = @"SubTitle";
    int region = 8000;
    MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance(theCoordinate, region, region)];
    [self.mapView setRegion:adjustedRegion animated:YES];
}
#pragma mark -
#pragma mark - MKMapView Delegate Methods
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *aV;
    for (aV in views)
    {
        CGRect endFrame = aV.frame;
        aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y - 230.0, aV.frame.size.width, aV.frame.size.height);
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.70];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [aV setFrame:endFrame];
        [UIView commitAnimations];
    }
}
- (MKAnnotationView *)mapView:(MKMapView *)sender viewForAnnotation:(id < MKAnnotation >)annotation
{
    static NSString *reuseId = @"StandardPin";
    MKPinAnnotationView *aView = (MKPinAnnotationView *)[sender dequeueReusableAnnotationViewWithIdentifier:reuseId];
    if (aView == nil)
    {
        aView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseId];
        aView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        aView.canShowCallout = YES;
    }
    aView.annotation = annotation;
    return aView;
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    [mapView deselectAnnotation:view.annotation animated:YES];
}

我在iOS 6.1上的控制台中也有相同的输出。

在我的案例中,问题是我试图根据坐标(0.0000000,0.000000(缩小地图,但只有在我第一次打开地图时,它才产生了奇怪的渲染问题重新打开地图后,它工作正常。但当坐标不是(0.0000000,0.000000(时,它总是有效的。

也许你应该检查theCoordinate的值是否是你想要的。

最新更新