2011-01-31 34 views
0

我在嘗試旋轉我的iPhone應用程序中的地圖時面臨此問題關於在iOS中旋轉地圖

視圖被剪切並旋轉也發生。我想避免剪輯。有小費嗎 ?

繼承人的代碼:

viewToRotate.layer.transform = CATransform3DMakeRotation(0.8, 0., 0., 1.); 
+0

你是什麼意思「視圖被剪輯」? – 2011-02-01 00:35:30

回答

0

你有沒有想出解決辦法嗎?

我能做到的唯一方法就是讓界面生成器中的MapView比它應該覆蓋的屏幕區域的實際尺寸大得多,然後我將MapView對齊,使其中心位於更窄的中心可視區域。

旋轉似乎與其在內置地圖應用中的工作方式類似。

我的猜測是,你必須這樣做,以便從Google流入的圖像圖塊覆蓋足夠寬的區域,以便「填補空白」,即使它們不總是可見。

如果您應用一點數學計算,您可能可以通過編程來設置MapView的大小和位置,這樣就可以無效裁剪,但不需要比絕對必要的更多的圖塊。

2

您需要以3D形式旋轉地圖嗎?如果沒有(這是我認爲你需要的),那麼只需使用CGAffineTransformMakeRotation(小心,因爲它需要以弧度表示的角度)。

另外,如果你不想讓你的地圖被裁剪做,你需要讓你的地圖更大,像下面的圖片(在新標籤中打開看看它更大)

http://img593.imageshack.us/img593/4498/calculatemapboundswhenr.png

首先,您需要按照上圖(我稱之爲「半徑」,因爲這將是比您的矩形更大的最小圓的半徑)指示來計算矩形的對角線(您的可視地圖)。

其次,使用半徑,您需要計算(最小)平方,這將允許您的地圖在沒有裁剪的情況下被看到。這個正方形將用於設置您的地圖的bounds(注意:不是frame - Apple規定,使用旋轉時,不應使用frame - 只需bounds和/或center)。

確保此方形以可見的地圖矩形的中心爲中心(即,方形應該在小矩形上方和下方的X像素以及小矩形的左邊和右邊Y像素)。

希望它有幫助!