【问题标题】:MKMapView NSInvalidArgumentException Invalid Region crash in ios6MKMapView NSInvalidArgumentException Invalid Region crash in ios6
【发布时间】:2012-10-17 12:06:57
【问题描述】:

使用 MKMapView 设置位置坐标时程序崩溃。 日志:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无效区域<center:+112.57075000, +37.87049600 span:+0.05165163, +0.43945312>

我的程序中的跨度是

MKCoordinateSpan span;
span.latitudeDelta = .05;
span.longitudeDelta = .02;

编码后:

    self.mMKMapview.region = [self.mMKMapview regionThatFits:region];

如日志所示,span 更改为:+0.05165163, +0.43945312

请大家帮忙,我已经停在这里两天了。

谢谢!

【问题讨论】:

    标签: ios6 mkmapview


    【解决方案1】:

    问题是center坐标:

    +112.57075000, +37.87049600

    纬度必须在 -90 到 +90 之间,因此 +112.57075 超出范围。

    检查中心坐标是如何设置的,或者数据是否向后。


    此外,您不需要显式调用regionThatFits,因为地图视图会在您正常设置区域时自动执行(即只需调用setRegion)。顺便说一下,地图视图根据需要调整跨度以适应地图视图尺寸或缩放级别是正常的。

    【讨论】:

      【解决方案2】:

      我使用以下代码设置区域:

      if( centerLat > -89 && centerLat < 89 && centerLng > -179 && centerLng < 179 ){
          [self.mapView setRegion:region animated:YES];
      }
      

      【讨论】:

        【解决方案3】:

        我宁愿建议使用CLLocationCoordinate2DIsValid

        有点像

        guard CLLocationCoordinate2DIsValid(centerLat) else {
        
             return
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-16
          • 2012-11-04
          相关资源
          最近更新 更多