【问题标题】:MKMapView NSInvalidArgumentException Invalid Region crash in iosMKMapView NSInvalidArgumentException Invalid Region crash in ios
【发布时间】:2013-03-05 09:30:43
【问题描述】:

我在我的一段代码中收到错误“由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'Invalid Region'”。这是代码:

- (MKCoordinateRegion)region
{
    MKCoordinateSpan span;
    span.latitudeDelta = (maxLat + 90) - (minLat + 90);
    span.longitudeDelta = (maxLon + 180) - (minLon + 180);

    NSLog(@"value of lat delta %f",span.latitudeDelta);
    NSLog(@"value of long delta %f",span.longitudeDelta);

    if(span.latitudeDelta == 0.0f)
    span.latitudeDelta = 0.1f;
    if(span.longitudeDelta == 0.0f)
    span.longitudeDelta = 0.1f;

    CLLocationCoordinate2D center;
    center.latitude = minLat + span.latitudeDelta / 2;
    center.longitude = minLon + span.longitudeDelta / 2;

    return MKCoordinateRegionMake(center, span);
}

这里的 center.latitude 和 center.longitude 变为零并且崩溃了。 maxlat、maxlon、minlat 和 minlon 的值是 maxLat = -91,minLat = 91,maxLon = -181,minLon = 181 请帮我解决这个问题。

【问题讨论】:

    标签: ios5 mapkit


    【解决方案1】:

    我遇到了类似的问题。在谷歌地图上绘制最大值(纬度,经度)和最小值(纬度,经度)基本上会超出范围。 (我猜这在 iOS 6 的 MapKit 中没有得到很好的处理)

    目前,我的解决方法(并且有效)是设置这些值 maxLat = -75, minLat = 75, maxLon = -175, minLon = 175

    我的应用可以做到这一点,因为它主要为一些人口最稠密的地区绘制地图。如果您的地图必须显示包括北极/南极在内的整个星球,那么我不确定我的 hack 是否会有所帮助。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并调查了纬度和经度的最大值可以设置为: minLat = -84 ma​​xLat = 84 minLong = -179 ma​​xLong = 179 否则您的位置将超出地图范围,调用 setRegion 可能会导致崩溃。

      【讨论】:

        猜你喜欢
        • 2012-10-17
        • 2018-10-28
        • 1970-01-01
        • 2018-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        相关资源
        最近更新 更多