2013-05-06 40 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

相關問題