2013-05-06 54 views
1

在我的一个iPad应用程序中,我使用MKMapView来显示区域,我有一个奇怪的问题。我使用setRegion:animated:方法从noOf点设置特定区域。当我从地图上的特定点放大时,地图会显示没有地点/位置图像的网格。有没有人有过相同的问题?有人可以提供如何处理这种缩放级别问题的解决方案吗?有没有办法在iOS6中限制MKMapView Zoomlevel

附加该图像获得多个参考

最初,我所说的setRegion:MapView的的与2D坐标和其作为0.0014f为经度和纬度的增量值跨度方法。所以我得到以下图像。

enter image description here

之后,如果我尝试再次的MapView放大,它会像下面

enter image description here

我担心的是,这种情况是否有办法限制放大以避免黑色图层显示/一旦mapview达到其最佳可能的缩放单元格后,如何限制放大。

+0

您需要更清楚地解释。首先,你的品脱在哪里。也许这里没有数据。也许你放大得太近了。你的意思是从*这些坐标缩放*或缩放*到*。 – Craig 2013-05-06 22:24:02

回答

0

当你放大关闭mapv​​iew想显示最详细的瓷砖,而不是别的。对于某些地区(政府,军队或没有任何地方的地方),没有瓷砖,它就会遇到这种情况!

问题是,你不知道哪里有或没有任何瓷砖可用。

我能想象得到: 当你放大。 regionWillChange:中没有砖的情况下被调用,然后willStartLoading:应该叫然后mapViewDidFailLoadingMap:withError

(即时猜测这里)

+0

我同意。但是在苹果地图的实施中,它们对这种情况会产生反弹效果,它们不会让我们在达到这些情况时放大那个关闭。有没有办法达到同样的效果? – 2013-05-07 15:58:39

+0

不是我知道的,他们不使用MKMapView ... – 2013-05-07 16:03:54

+0

虽然... mapViewDidFailLoadingMap:withError – 2013-05-07 16:04:56

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

作出经/纬度确保您的区域跨度是不是定得太低它会清除。

为清楚起见,编辑:在iOS6中,将跨度delta设置得太低(例如小于.0005)会使其将字面视图设置为该区域,而不管其是否具有用于该区域的一组图像详细程度。 IE:如果放大得太远,没有地图图块来表示区域。在iOS5中,它会处理尝试放大太远并剪切区域而不会导致问题。

要解决此问题,您可以将区域跨度经度和距离增量设置为最小值,以便地图仍然呈现其自身。任何时候设置地图区域或导致地图区域发生变化时,请检查最小值。

+0

没有上下文或解释。 – Undistraction 2013-07-17 17:59:13

相关问题