2011-07-12 33 views
2

我想縮放到特定區域。我遇到的問題是,據我所知,以編程方式,您只能設置爲固定縮放級別。我製作了一個測試應用程序來演示這一點。我正在使用固定的中心座標,然後以米爲單位改變大小。在1000到4000之間的測試中,縮放級別爲aprrox: 1940,1940 < 3865,3865 < 4000+。這些只有三個縮放級別,它可以讓你從1000-4000進入。我遇到的問題是我想要的縮放級別在1940年到3865年之間,因爲在1940年以下,我的註釋不適合,而且大於3865,與較小的縮放相比,圖像看起來很差,真正令人沮喪的是,我可以把它設置得恰到好處,通過縮放應用程序來使註釋適合和圖像看起來很好,但不是通過程序設置。較小的MapKit縮放間隔iPhone

有沒有人知道更準確的方式來設置? (我已經嘗試在長/長跨度上使用我的相同測試應用程序 - 具有相同的邊界)。

在此先感謝

+0

有誰知道如果同樣的事情發生在MKMapRect,並設置可見的矩形? - 我真的失去了如何讓地圖縮小,就好像被捏住了一樣? –

+0

如果有人可以告訴我如何做到這一點,即使它沒有明確設置MapKit縮放(如觸摸模擬),那將是非常好的... –

+0

現在你如何設置縮放? – Anomie

回答

2

MapKit只允許設置積分縮放級別。非積分縮放級別爲File an enhancement request

+0

謝謝,如果它可以通過觸摸來完成,你是否可以不向mapkit發送手動觸摸事件? –

0

原則上你應該能夠設置一個任意的縮放級別setVisibleMapRect:animated:setRegion:animated:但是,MapKit似乎存在一個bug,它會「向上移動」到下一個完整的縮放級別,正如您已經注意到的那樣...非常惱人的行爲。我前一段時間向蘋果公司報告,根據錯誤報告系統,它仍然是開放的。抱歉,我無法找到任何解決方法。

+0

感謝您的明確表達 - 我只是覺得奇怪,用戶如何比開發人員擁有更多的控制權! –

0

是的,這是一個問題,但你可以嘗試找到適合你需要的值。這些數字可能與您想要的完全不一樣。你需要通過查看地圖來弄清楚它。我有今天如此做,我這樣做:

  1. 實現的MapView:regionDidChangeAnimated:登錄地圖的當前區域。我得到0.26 ...和0.24 ...作爲跨度,但即使我把這些值,我沒有得到相同的縮放級別。

  2. 由於我比我想要的更加縮小,我開始減少這些值,最終使用了0.2和0.18。

目前想到的唯一解決方案是反覆試驗。您還可以通過手動捏合獲取您想要的縮放級別的值。然後使用這些值以編程方式設置區域。如果地圖更加縮小,請嘗試按比例減少緯度和經度增量。如果它縮放,則嘗試按比例增加它們。

我希望這可以幫助你。