2011-06-07 121 views
4

我正在研究需要像iOS上的原始MapView一樣工作的Map應用程序。 我需要根據指南針的標題值旋轉mapview。我試過MTLocation的例子,我也試過this answer但是我的結果不好。根據指南針旋轉MapView

請參閱截圖。

enter image description here

當我按標題值地圖可旋轉,但你可以在屏幕上看到的瓷磚缺少旋轉的MapView。

我該如何解決這個顯示問題?

問候 - 法提赫

回答

9

海蘭,

我MTLocation的作者。感謝您順便使用它! 爲了這個工作你必須確保你的MKMapView是你的ViewController視圖的子視圖(而不是視圖本身)。然後你必須用一個簡單的Pytaghoras計算來增加你的mapView的框架:計算寬度和高度必須至少與對角線一樣大:sqrt(visibleWidth [320]^2 + visibleHeight [480-88]^2)= 506.

因此,這意味着

mapView = [[MKMapView alloc] initWithFrame:CGRectMake(-100,-100,520,520)]; 

希望,幫助,請考慮upvoting是否能解決問題。

+0

嘿myell0w,我根據你的評論改變了我的代碼,它按預期工作。感謝您的快速響應。 – fyasar 2011-06-07 22:39:16

+0

MTLocation現在在MKMapView上有一個類別方法來自動爲您調整大小: [self.mapView sizeToFitTrackingModeFollowWithHeading] – myell0w 2011-12-31 12:51:12

+0

只需更改設備角度,地圖就會以正確的方式出現。 – Hari1251 2012-10-16 13:08:25

0
  1. 您可以考慮使用一個更大的框架爲MKMapView對象。它應該是一個正方形,每邊的長度等於設備對角線的長度。這種方法存在的問題是,用戶不會看到這個對象的區域,但是我們無論如何都會處理與該區域相關的註釋的視圖信息。其他屬性,如visibleMapRect將是最沒有幫助的。

  2. 另一種替代方法是通過縮放旋轉對象MKMapView來放大。但是這可能會使地圖模糊(未經測試)。您可以縮小地圖上顯示的區域,但可能會導致頻繁刷新。您可以看一下中間地帶,在地圖旋轉一定角度之前,您不會縮小。您還可以使用兩個視圖,其中一個視圖不在屏幕上並進行更新,以便它可以在一定量的旋轉後替換視圖,以使其感覺無縫。

0

我正努力在iPhone中製作我自己的地圖應用程序。我想讓我的地圖隨着用戶轉動而旋轉。我嘗試了iOS 5中可用的setUserTrackingMode,但由於某種原因它不起作用。所以我決定接受MTLocation框架here的幫助。

直到現在我已經完成了以下工作。

  1. 創建一個新項目並複製所有.m和.h文件。
  2. 導入MapKit.hMTLocation.h
  3. Viewcontroller.hmapView(我應該爲locateMeItem定義屬性)的定義的屬性。
  4. ViewDidLoad中,粘貼頁面末尾給出的代碼here

我得到了一些錯誤:

  1. 無法看到locateMe按鈕時編程創建。
  2. 未定義的屬性headingEnabled
  3. myCustomSelector沒有效果。
  4. self.toolbar - 工具欄不是ViewController的實例。

我曾經在gist [dot] github [dot] com/1373050上試過了一個代碼,但是我也遇到類似的錯誤。

任何人都可以解釋一下這個的詳細過程。