ios – MKMapView setRegion to Small Area导致卫星图像加载失败

我已经在同一个应用程序上工作了好几个月,这是一个新问题.我想知道Apple Map数据的服务器端是否有变化.这是问题所在:

我的应用程序(有时)想要将MKMapView区域设置为特定位置周围最完全放大的值.为此,我做了类似的事情:

self.map.mapType = MKMapTypeHybrid;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(item.lat, item.lng), 1.0, 1.0);
[self.map setRegion:region animated:NO];

无论项目的坐标在哪里,我都会得到网格化的“无卫星图像”背景.这似乎与可用的卫星图像无关,因为它在美国的许多地区表现一致.

我知道setRegion:animated:可能会在事后调整区域.而且我知道1平方米是一个不合理的小区域,试图在一张相当大的地图上展示.所以,我试过了

[self.map setRegion:[self.map regionsThatFits:region] animated:NO];

设置动画:YES确实可以防止这种情况发生,但我不想为这些更改设置动画.

还有一些观察结果:

>如果我只缩小1或2像素,则会出现地图图像.
>尝试实现map委托方法: – mapViewDidFailLoadingMap:withError:没有帮助.它永远不会被称为.
>这似乎是新的.我在应用程序商店中的应用程序的工作版本现在表现出类似的问题.
>我最近在其他热门应用中看到过这种情况.

有关解决方案的任何想法,或确认这是一个系统性问题?

最佳答案

//fix for ios6
if (region.span.latitudeDelta < .0005f)
    region.span.latitudeDelta = .0005f;
if (!region.span.longitudeDelta < .0005f)
    region.span.longitudeDelta = .0005f;

确保lat / lon的区域范围没有设置得太低,它会清空.

点赞