MapKit中的区域错误无效

时间:2014-04-11 13:12:30

标签: ios ios7 mapkit

我正在使用MapKit,并且在启动应用程序时偶尔会出现以下错误。

'Invalid Region <center:nan, nan span:+180.00000000, +360.00000000>'

我用于设置区域的代码如下。

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    if (!self.initialLocation)
    {
        NSLog(@"Center is %f", userLocation.coordinate.longitude); // Debug
        [self calculateLocationAddress]; // Reverse geolocating, does not create the error
        self.initialLocation = userLocation.location;

        MKCoordinateRegion region;
        region.center = userLocation.coordinate;

        // Region to show when app is loaded
        region.span = MKCoordinateSpanMake(0.04, 0.04);

        region = [mapView regionThatFits:region];
        [mapView setRegion:region animated:YES];
    }
}

该方法中的日志显示用户位置已设置,因为我一直在其中获取正确的值,即使它因无效区域错误而崩溃。我也尝试使用CLLocationCoordinate2DIsValid来验证区域,但同样的错误。如上所述,这个错误非常零星,偶尔会出现。 关于我可能做错的任何想法?

修改 如果我打开故事板并在再次编译之前对其进行更改,则错误几乎总是消失。

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,并且可以通过以下代码解决。

if ( (region.center.latitude >= -90) && (region.center.latitude <= 90) && (region.center.longitude >= -180) && (region.center.longitude <= 180)) {
            self.mapView.setRegion(region, animated: true)
            
            }
            else
            {
            print("Invalid region!")
        }

快乐编码 谢谢